Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Tôi đang cố gắng có được sự khác biệt giữa hai ngày tính bằng giây. Logic sẽ như thế này:

  • Đặt một ngày ban đầu sẽ là bây giờ;
  • Đặt một ngày cuối cùng sẽ là ngày ban đầu cộng với một số giây trong tương lai (ví dụ như nói 15)
  • Nhận sự khác biệt giữa hai (số giây)

Lý do tại sao tôi làm nó với ngày đó là vì ngày / giờ cuối cùng phụ thuộc vào một số biến khác và nó không bao giờ giống nhau (nó phụ thuộc vào mức độ nhanh của người dùng) và tôi cũng lưu trữ ngày ban đầu cho những thứ khác.

Tôi đã thử một cái gì đó như thế này:

var _initial = new Date(),
    _initial = _initial.setDate(_initial.getDate()),
    _final = new Date(_initial);
    _final = _final.setDate(_final.getDate() + 15 / 1000 * 60);

var dif = Math.round((_final - _initial) / (1000 * 60));

Điều này là tôi không bao giờ có được sự khác biệt đúng đắn. Tôi đã cố gắng chia cho

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
1 sẽ để lại cho tôi những giây, nhưng tôi không bao giờ hiểu đúng. Vậy logic của tôi có gì sai? Tôi có thể đã phạm một sai lầm ngu ngốc vì đã khá muộn, nhưng điều đó làm phiền tôi rằng tôi không thể làm cho nó hoạt động :)

Hỏi ngày 15 tháng 12 năm 2012 lúc 17:48Dec 15, 2012 at 17:48

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

12

Mật mã

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;

Hoặc thậm chí đơn giản hơn

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
2 như đã chỉ ra trong các bình luận trừ khi bạn đang sử dụng TypeScript.


Giải thích

Bạn cần gọi phương thức

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
3 cho các đối tượng
var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
4, sau đó chỉ cần trừ chúng và chia cho 1000 (vì nó ban đầu bằng mili giây). Như một phần bổ sung, khi bạn gọi phương thức
var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
5, thực tế bạn sẽ nhận được ngày trong tháng dưới dạng số nguyên từ 1 đến 31 (không dựa trên 0) so với thời gian mà bạn nhận được từ việc gọi
var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
3 Phương pháp, đại diện cho số mili giây kể từ ngày 1 tháng 1 năm 1970, 00:00


Cơn thịnh nộ

Tùy thuộc vào các hoạt động liên quan đến ngày của bạn, bạn có thể muốn đầu tư vào việc tích hợp một thư viện, chẳng hạn như Date.js hoặc Moment.js giúp mọi thứ trở nên dễ dàng hơn cho nhà phát triển, nhưng đó chỉ là vấn đề sở thích cá nhân.

Ví dụ, trong khoảnh khắc.js chúng tôi sẽ làm

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
7 rất đẹp.


Tài liệu hữu ích cho câu trả lời này

  • Tại sao 1970?
  • Đối tượng ngày
  • Phương pháp GetTime của ngày
  • Phương pháp GetDate của ngày
  • Cần nhiều độ chính xác hơn chỉ vài giây?

Đã trả lời ngày 15 tháng 12 năm 2012 lúc 17:51Dec 15, 2012 at 17:51

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Juan Cortésjuan CortésJuan Cortés

20.1k8 Huy hiệu vàng66 Huy hiệu bạc89 Huy hiệu đồng8 gold badges66 silver badges89 bronze badges

6

Bạn có thể sử dụng

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
8 để có dấu thời gian. Sau đó, bạn có thể tính toán sự khác biệt giữa kết thúc và bắt đầu và cuối cùng chuyển đổi dấu thời gian là
var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
9 thành
const start = new Date().getTime();
const end = new Date().getTime();

const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);
0.

const start = new Date().getTime();
const end = new Date().getTime();

const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);

Đã trả lời ngày 19 tháng 9 năm 2017 lúc 15:28Sep 19, 2017 at 15:28

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

3


Đã trả lời ngày 22 tháng 7 năm 2015 lúc 11:46Jul 22, 2015 at 11:46

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Chính xác và nhanh chóng sẽ cung cấp đầu ra trong vài giây:

 let startDate = new Date()
 let endDate = new Date("yyyy-MM-dd'T'HH:mm:ssZ");
 let seconds = Math.round((endDate.getTime() - startDate.getTime()) / 1000);

Đã trả lời ngày 28 tháng 1 năm 2021 lúc 7:05Jan 28, 2021 at 7:05

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Ajmal Hasanajmal HasanAjmal Hasan

4296 Huy hiệu bạc6 Huy hiệu Đồng6 silver badges6 bronze badges

Mã dưới đây sẽ cung cấp sự khác biệt về thời gian trong thứ hai.

Nhập khẩu nền tảng

var date1 = new Date(); // current date
var date2 = new Date("06/26/2018"); // mm/dd/yyyy format
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // in miliseconds
var timeDiffInSecond = Math.ceil(timeDiff / 1000); // in second
    
alert(timeDiffInSecond );

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Đã trả lời ngày 27 tháng 6 năm 2018 lúc 7:43Jun 27, 2018 at 7:43

Gautam Raigautam RaiGautam Rai

2.3652 Huy hiệu vàng19 Huy hiệu bạc31 Huy hiệu đồng2 gold badges19 silver badges31 bronze badges

chênh lệch thời gian giữa bây giờ đến 10 phút sau khi sử dụng meam

let start_time = moment().format('YYYY-MM-DD HH:mm:ss');
let next_time = moment().add(10, 'm').format('YYYY-MM-DD HH:mm:ss');

let diff_milliseconds = Date.parse(next_time) - Date.parse(star_time);
let diff_seconds = diff_milliseconds * 1000;

Đã trả lời ngày 16 tháng 5 năm 2018 lúc 16:48May 16, 2018 at 16:48

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Surya Singhsurya SinghSurya Singh

Huy hiệu bạc 11911 silver badge11 bronze badges

let startTime = new Date(timeStamp1);
let endTime = new Date(timeStamp2);

Để có được sự khác biệt giữa các ngày tính bằng giây ->

  let timeDiffInSeconds = Math.floor((endTime - startTime) / 1000);

Nhưng porduc này dẫn đến UTC (vì một số lý do mà tôi không biết). Vì vậy, bạn phải tính đến phần bù múi giờ mà bạn có thể làm như vậy bằng cách thêm

ngày mới (). getTimeZoneoffset ();

Nhưng điều này mang lại cho thời gian bù thời gian trong vài phút, vì vậy bạn phải nhân nó với 60 để có được sự khác biệt trong vài giây.

  let timeDiffInSecondsWithTZOffset = timeDiffInSeconds + (new Date().getTimezoneOffset() * 60);

Điều này sẽ tạo ra kết quả là chính xác theo bất kỳ thời gian nào và sẽ không thêm/trừ giờ dựa trên múi giờ của bạn so với UTC.

Đã trả lời ngày 15 tháng 4 lúc 3:55Apr 15 at 3:55

Hướng dẫn javascript time difference between two dates - chênh lệch thời gian javascript giữa hai ngày

Xác định hai ngày bằng ngày mới (). Tính chênh lệch thời gian của hai ngày sử dụng ngày 2. GetTime () - Ngày1. dành thời gian(); Tính toán không. Trong số các ngày giữa hai ngày, chia chênh lệch thời gian của cả hai ngày cho không. của mili giây trong một ngày (10006060*24)

Đã trả lời ngày 12 tháng 1 năm 2021 lúc 4:03Jan 12, 2021 at 4:03

Hãy thử sử dụng các chức năng chuyên dụng từ các ngôn ngữ lập trình cấp cao. JavaScript

const start = new Date().getTime();
const end = new Date().getTime();

const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);
1 Bộ quần áo ở đây:

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
0

Đã trả lời ngày 2 tháng 11 năm 2017 lúc 5:00Nov 2, 2017 at 5:00

Gilbert Cutgilbert cắtGilbert Cut

Huy hiệu bằng đồng 1131 Bạc121 silver badge12 bronze badges

1

Làm thế nào tôi có thể có được thời gian giữa hai ngày trong JavaScript?

Cách tiếp cận 1:..
Xác định hai ngày bằng ngày mới () ..
Tính chênh lệch thời gian của hai ngày sử dụng ngày 2.GetTime () - Ngày1.dành thời gian();.
Tính toán không.Trong số ngày giữa hai ngày, chia chênh lệch thời gian của cả hai ngày cho không.của mili giây trong một ngày (1000*60*60*24).
In kết quả cuối cùng bằng tài liệu.viết()..

Làm thế nào tôi có thể tính thời gian giữa 2 ngày trong TypeScript?

Để tính thời gian giữa 2 ngày trong TypeScript, hãy gọi phương thức GetTime () vào cả hai ngày khi trừ, ví dụ:ngày 2.GetTime () - Ngày1.dành thời gian() .Phương thức GetTime () trả về một số đại diện cho mili giây giữa Epoch unix một ngày đã cho.call the getTime() method on both dates when subtracting, e.g. date2. getTime() - date1. getTime() . The getTime() method returns a number representing the milliseconds between the unix epoch an the given date.