01/10/2018, 11:34

Sự khác biệt trong hàm tính thời gian của C# và Javascript

Bữa rảnh rỗi nhớ người yêu cũ nên bèn tính số ngày mà 2 đứa quen nhau tới hiện tại, thì mình phát hiện ra như vầy.

Trong C# mình tính số milisecond từ ngày 1/1/1970 tới ngày 2/1/1970 với code như sau

   static string CalcDate(DateTime d1, DateTime d2)
    {
        return Math.Abs((d1 - d2).TotalMilliseconds).ToString();
    }

kết quả sẽ ra là 86400000

Mình mới bèn thử bên javascript với code như như bên dưới

function myFunction() {
    var d = new Date(1970,1,2);
    var n = d.getTime();}

Và kết quả nhận được là 2739600000

Hàm getTime() trong JS sẽ trả về số milisecond từ ngày 1/1/1970.

1 ngày chính xác là có 86400000 miliseconds.

Tại sao lại có sự chênh lệch kết quả như trên vậy nhỉ các bác! Ai giải thích giúp mình với.

*grab popcorn* viết 13:46 ngày 01/10/2018
  1. Object Date nhận tháng từ 0 (0 = tháng 1, 1 = tháng 2, …)
  2. Khi sửa thành 0 rồi nó vẫn sẽ sai 1 chút vì nó sẽ tính theo giờ local.
Nadreasky viết 13:48 ngày 01/10/2018

bác chuẩn lun, sửa lại thì nó lệch 7 tiếng so vs giờ gốc

Bài liên quan
0