Tính khoảng cách giữa 2 mốc thời gian

Ý tưởng:

  • Dùng phương thức parse() đổi thời gian đầu và cuối ra dạng milliseconds rồi trừ nhau.
  • Đổi từ milliseconds sang giây, rồi đổi ra phút, giờ, ngày, năm, tháng.

Tham khảo:

http://w3schools.com/jsref/jsref_parse.asp

Code tham khảo:

var totalSec1;
var totalSec2;
var totalSec, day, month, year, hour, min, sec;

function toDateTime(secx) // Đổi giây ra ngày tháng năm, giờ phút, giây
{
sec = secx / 1000;
min = Math.floor(sec / 60);
sec -= min * 60;

hour = Math.floor(min / 60);
min -= hour * 60;

day = Math.floor(hour / 24);
hour -= day * 24;

year = Math.floor(day / 365);
day -= year * 365;

var soNgay = day;
timThang(soNgay);
}

var ngayTrongThang = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // Áp dụng tính cho các tháng 30, 31 hay 28 ngày.
function timThang(soNgay)
{
for (var i = 0; i < 11; i++)
{
if (soNgay >= ngayTrongThang[i])
{
soNgay -= ngayTrongThang[i];
}
else
{
month = i;
day = soNgay;
break;
}
}
}

function displayData() // Hiển thị ra textbox
{
var str = new String();
str += day + ” ngày ” + month + ” tháng ” + year + ” năm và ” + hour + ” giờ ” + min + ” phút ” + sec + ” giây”;
dateform.resDateTime.value = str;
}

function cal() // Hàm chính
{
var totalSec1 = Date.parse(dateform.startDateTime.value)
var totalSec2 = Date.parse(dateform.endDateTime.value)

totalSec = Math.abs(totalSec2 – totalSec1);

toDateTime(totalSec);

displayData();
}

 

Link demo: http://www.cosmospham.com/fpt/bdw/datetime

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s