Hướng dẫn how to calculate timestamp in javascript - cách tính dấu thời gian trong javascript

Tôi cung cấp nhiều giải pháp với các mô tả trong câu trả lời này. Hãy đặt câu hỏi nếu có bất cứ điều gì không rõ ràng


Giải pháp nhanh chóng và bẩn thỉu:

Date.now() /1000 |0

CẢNH BÁO: Nó có thể bị phá vỡ vào năm 2038 và trả về số âm nếu bạn thực hiện phép thuật

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
5. Sử dụng
const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
6 thay vào đó vào thời điểm đó
: it might break in 2038 and return negative numbers if you do the
const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
5 magic. Use
const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
6 instead by that time

Giải pháp

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
6:

Math.floor(Date.now() /1000);

Một số thay thế nerdy của Derek được lấy từ các bình luận bên dưới câu trả lời này:

new Date/1e3|0

Polyfill để có được

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
8 hoạt động:

Để làm cho nó hoạt động trong IE, bạn có thể làm điều này (polyfill từ MDN):

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}

Nếu bạn không quan tâm đến năm / ngày trong tuần / thời gian tiết kiệm ánh sáng ban ngày, bạn cần nhớ điều này vào ngày sau năm 2038:

Các hoạt động bitwise sẽ gây ra việc sử dụng số nguyên 32 bit thay vì 64 điểm nổi.

Bạn sẽ cần sử dụng đúng cách như:

Math.floor(Date.now() / 1000)

Nếu bạn chỉ muốn biết thời gian tương đối từ điểm khi mã được chạy qua đầu tiên, bạn có thể sử dụng một cái gì đó như thế này:

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();

Trong trường hợp bạn đang sử dụng jQuery, bạn có thể sử dụng

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
9 như được mô tả trong tài liệu của JQuery, điều này làm cho polyfill lỗi thời kể từ khi
const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
9 trong nội bộ làm điều tương tự:
const currentDate = new Date();
1

Nếu bạn chỉ hài lòng về phiên bản của JQuery, hãy xem xét nâng cao câu trả lời này vì tôi không tìm thấy nó.this answer since I did not find it myself.


Bây giờ một lời giải thích nhỏ về những gì

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
5 làm:

Bằng cách cung cấp

const currentDate = new Date();
3, bạn nói với thông dịch viên thực hiện nhị phân hoặc hoạt động. Các hoạt động bit yêu cầu các số tuyệt đối biến kết quả thập phân từ
const currentDate = new Date();
4 thành một số nguyên.
Bit operations require absolute numbers which turns the decimal result from
const currentDate = new Date();
4 into an integer.

Trong quá trình chuyển đổi đó, số thập phân được loại bỏ, dẫn đến một kết quả tương tự với những gì sử dụng

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
6 sẽ xuất ra.

Mặc dù vậy, được cảnh báo: nó sẽ chuyển đổi gấp đôi 64 bit thành số nguyên 32 bit. Điều này sẽ dẫn đến mất thông tin khi xử lý số lượng lớn. Dấu thời gian sẽ bị hỏng sau năm 2038 do tràn số nguyên 32 bit trừ khi JavaScript di chuyển đến các số nguyên 64 bit ở chế độ nghiêm ngặt. it will convert a 64 bit double to a 32 bit integer.
This will result in information loss when dealing with huge numbers.
Timestamps will break after 2038 due to 32 bit integer overflow unless Javascript moves to 64 Bit Integers in Strict Mode.


Để biết thêm thông tin về

const currentDate = new Date();
6 theo liên kết này:
const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
8 @ mdn

Là một nhà phát triển phần mềm, bạn có thể chạy trốn khỏi thao tác ngày. Hầu như mọi ứng dụng mà nhà phát triển xây dựng sẽ có một số thành phần nơi cần lấy ngày/giờ từ người dùng, được lưu trữ trong cơ sở dữ liệu và hiển thị lại cho người dùng.

Hỏi bất kỳ lập trình viên nào về kinh nghiệm xử lý ngày và múi giờ của họ và họ có thể sẽ chia sẻ một số câu chuyện chiến tranh. Các lĩnh vực ngày và thời gian xử lý chắc chắn không phải là khoa học tên lửa nhưng thường có thể tẻ nhạt và dễ bị lỗi.

Có hàng trăm bài viết về chủ đề này, tuy nhiên, hầu hết đều quá học thuật, tập trung vào các chi tiết lớn, hoặc chúng quá chắp vá, cung cấp đoạn mã ngắn mà không có nhiều lời giải thích đi kèm với chúng. Hướng dẫn chuyên sâu này về thao tác DateTime sẽ giúp bạn hiểu các khái niệm lập trình và thực tiễn tốt nhất có liên quan đến thời gian và ngày mà không phải duyệt qua một biển thông tin về chủ đề này.

Trong bài viết này, tôi sẽ giúp bạn suy nghĩ rõ ràng về các lĩnh vực ngày và giờ và đề xuất một số thực tiễn tốt nhất có thể giúp bạn tránh địa ngục ngày/giờ. Ở đây chúng tôi sẽ khám phá một số khái niệm chính cần thiết để thao tác chính xác các giá trị ngày và thời gian, các định dạng thuận tiện để lưu trữ các giá trị DateTime và chuyển chúng qua API và hơn thế nữa.

Đối với người mới bắt đầu, câu trả lời đúng cho mã sản xuất hầu như luôn luôn sử dụng một thư viện thích hợp thay vì tự cuộn. Những khó khăn tiềm tàng với tính toán DateTime được thảo luận trong bài viết này chỉ là phần nổi của tảng băng, nhưng họ vẫn hữu ích để biết, có hoặc không có thư viện.

Thư viện DateTime trợ giúp nếu bạn hiểu chính xác chúng

Thư viện ngày giúp theo nhiều cách để làm cho cuộc sống của bạn dễ dàng hơn. Họ đơn giản hóa rất nhiều phân tích phân tích ngày, các hoạt động số học và logic ngày và định dạng ngày. Bạn có thể tìm thấy một thư viện ngày đáng tin cậy cho cả mặt trước và đầu sau để thực hiện hầu hết các công việc nặng nhọc cho bạn.

Tuy nhiên, chúng tôi thường sử dụng các thư viện ngày mà không nghĩ về cách ngày/giờ thực sự hoạt động. Ngày/giờ là một khái niệm phức tạp. Các lỗi xuất hiện do sự hiểu biết không chính xác của nó có thể cực kỳ khó hiểu và sửa chữa, ngay cả với sự trợ giúp của các thư viện ngày. Là một lập trình viên, bạn cần hiểu những điều cơ bản và có thể đánh giá cao các vấn đề mà các thư viện ngày giải quyết để tận dụng tối đa chúng.

Ngoài ra, thư viện ngày/giờ chỉ có thể đưa bạn đến nay. Tất cả các thư viện ngày hoạt động bằng cách cung cấp cho bạn quyền truy cập vào các cấu trúc dữ liệu thuận tiện để thể hiện một DateTime. Nếu bạn đang gửi và nhận dữ liệu thông qua API REST, cuối cùng bạn sẽ cần chuyển đổi ngày thành chuỗi và ngược lại vì JSON không có cấu trúc dữ liệu gốc để biểu thị DateTime. Các khái niệm tôi đã phác thảo ở đây sẽ giúp bạn tránh một số vấn đề phổ biến có thể xảy ra khi thực hiện các phép biến đổi từ ngày sang chuỗi và chuỗi này.

Lưu ý: Mặc dù tôi đã sử dụng JavaScript làm ngôn ngữ lập trình được thảo luận trong bài viết này, đây là những khái niệm chung áp dụng, ở một mức độ lớn, hầu như tất cả các ngôn ngữ lập trình và thư viện ngày của họ. Vì vậy, ngay cả khi bạn không bao giờ viết một dòng JavaScript trước đây, hãy tiếp tục đọc vì tôi hầu như không cho rằng bất kỳ kiến ​​thức nào trước đây về JavaScript trong bài viết.

Tiêu chuẩn hóa thời gian

DateTime là một thời điểm rất cụ thể. Hãy để suy nghĩ về điều này. Khi tôi viết nguệch ngoạc bài viết này, đồng hồ trên máy tính xách tay của tôi cho thấy ngày 21 tháng 7 1:29 chiều. Đây là những gì chúng tôi gọi là giờ địa phương, thời gian mà tôi thấy trên đồng hồ treo tường xung quanh tôi và trên đồng hồ cổ tay của tôi.

Hãy cho hoặc dành vài phút, nếu tôi yêu cầu bạn tôi gặp tôi tại một quán cà phê gần đó lúc 3:00 chiều, tôi có thể mong đợi được gặp cô ấy ở đó vào lúc đó. Tương tự như vậy, sẽ không có bất kỳ sự nhầm lẫn nào nếu thay vào đó tôi đã nói, ví dụ, Let Let gặp nhau trong một tiếng rưỡi. Chúng tôi thường xuyên nói về thời gian theo cách này với những người sống trong cùng một thành phố hoặc múi giờ.

Hãy cùng nghĩ về một kịch bản khác: Tôi muốn nói với một người bạn sống ở Uppsala, Thụy Điển rằng tôi muốn nói chuyện với anh ấy lúc 5 giờ chiều. Tôi gửi cho anh ấy một tin nhắn, Hey Hey Anton, hãy nói chuyện vào lúc 5 giờ chiều. Tôi ngay lập tức nhận được phản hồi, "Thời gian của bạn hay thời gian của tôi?"

Anton nói với tôi rằng anh ấy sống ở vùng thời gian trung tâm châu Âu là UTC+01: 00. Tôi sống ở UTC+05: 45. Điều này có nghĩa là khi tôi sống 5 giờ chiều, là 5 giờ chiều - 05:45 = 11:15 sáng của chúng tôi.

Ngoài ra, hãy lưu ý về sự khác biệt giữa múi giờ (giờ trung tâm châu Âu) và phần bù múi giờ (UTC+05: 45). Các quốc gia có thể quyết định thay đổi độ lệch múi giờ của họ để tiết kiệm thời gian tiết kiệm ánh sáng ban ngày vì lý do chính trị. Hầu như mỗi năm, có một sự thay đổi đối với các quy tắc ở ít nhất một quốc gia, có nghĩa là bất kỳ mã nào với các quy tắc này phải được cập nhật, điều đó đáng để xem xét cơ sở mã của bạn phụ thuộc vào điều này cho mỗi tầng của ứng dụng của bạn.

Đó là một lý do chính đáng khác mà chúng tôi sẽ đề nghị rằng chỉ có giao dịch trước với các múi giờ trong hầu hết các trường hợp. Khi nó không có, điều gì xảy ra khi các quy tắc cơ sở dữ liệu của bạn sử dụng don don phù hợp với các công cụ phía trước hoặc mặt sau của bạn?

Vấn đề quản lý hai phiên bản khác nhau của thời gian, so với người dùng và so với tiêu chuẩn được chấp nhận phổ biến, rất khó khăn, thậm chí còn hơn thế giới trong thế giới lập trình trong đó độ chính xác là chìa khóa và thậm chí một giây có thể tạo ra sự khác biệt lớn. Bước đầu tiên để giải quyết các vấn đề này là lưu trữ DateTime ở UTC.

Tiêu chuẩn hóa định dạng

Tiêu chuẩn hóa thời gian là tuyệt vời vì tôi chỉ cần lưu trữ thời gian UTC và miễn là tôi biết múi giờ của người dùng, tôi luôn có thể chuyển đổi theo thời gian của họ. Ngược lại, nếu tôi biết một người dùng thời gian địa phương và biết múi giờ của họ, tôi có thể chuyển đổi nó thành UTC.

Nhưng ngày và thời gian có thể được chỉ định ở nhiều định dạng khác nhau. Đối với ngày này, bạn có thể viết ngày 30 tháng 7 hoặc ngày 30 tháng 7 hoặc ngày 7/30 (hoặc 30/7, tùy thuộc vào nơi bạn sống). Vào thời điểm đó, bạn có thể viết ra 9:30 tối hoặc hoặc 2130.

Các nhà khoa học trên toàn thế giới đã cùng nhau giải quyết vấn đề này và quyết định một định dạng để mô tả thời gian mà các lập trình viên thực sự thích bởi vì nó ngắn và chính xác. Chúng tôi muốn gọi nó là định dạng ngày ISO, đó là phiên bản đơn giản hóa của định dạng mở rộng ISO-8601 và có vẻ như thế này:

Hướng dẫn how to calculate timestamp in javascript - cách tính dấu thời gian trong javascript

Đối với 00:00 hoặc UTC, chúng tôi sử dụng phiên bản Z Z, có nghĩa là thời gian của Zulu, một tên khác cho UTC.

Thao tác ngày và số học trong JavaScript

Trước khi chúng tôi bắt đầu với các thực tiễn tốt nhất, chúng tôi sẽ tìm hiểu về thao tác ngày bằng cách sử dụng JavaScript để nắm bắt cú pháp và các khái niệm chung. Mặc dù chúng tôi sử dụng JavaScript, bạn có thể điều chỉnh thông tin này với ngôn ngữ lập trình yêu thích của bạn một cách dễ dàng.

Chúng tôi sẽ sử dụng số học ngày để giải quyết các vấn đề liên quan đến ngày chung mà hầu hết các nhà phát triển gặp phải.

Mục tiêu của tôi là làm cho bạn thoải mái khi tạo một đối tượng ngày từ một chuỗi và trích xuất các thành phần từ một. Đây là một cái gì đó mà một thư viện ngày có thể giúp bạn, nhưng nó luôn luôn tốt hơn để hiểu làm thế nào nó được thực hiện đằng sau hậu trường.

Một khi chúng tôi đã bị bẩn tay với ngày/giờ, thì việc suy nghĩ về những vấn đề chúng ta gặp phải, trích xuất các thực tiễn tốt nhất và tiến lên phía trước sẽ dễ dàng hơn. Nếu bạn muốn bỏ qua các thực tiễn tốt nhất, hãy thoải mái làm như vậy, nhưng tôi rất khuyên bạn nên ít nhất hãy lướt qua phần điều trị ngày bên dưới.

Đối tượng ngày JavaScript

Ngôn ngữ lập trình chứa các cấu trúc hữu ích để làm cho cuộc sống của chúng ta dễ dàng hơn. Đối tượng JavaScript

const currentDate = new Date();
8 là một trong những điều như vậy. Nó cung cấp các phương pháp thuận tiện để có được ngày và giờ hiện tại, lưu trữ một ngày trong một biến, thực hiện số học ngày và định dạng ngày dựa trên ngôn ngữ của người dùng.

Do sự khác biệt giữa việc triển khai trình duyệt và xử lý không chính xác thời gian tiết kiệm ánh sáng ban ngày (DST), tùy thuộc vào đối tượng ngày cho các ứng dụng quan trọng không được khuyến khích và bạn có thể nên sử dụng thư viện DateTime như Luxon, Date-FNS hoặc DEADJS. (Bất cứ điều gì bạn sử dụng, hãy tránh khoảnh khắc phổ biến một thời.

Nhưng đối với mục đích giáo dục, chúng tôi sẽ sử dụng các phương thức mà đối tượng ngày () cung cấp để tìm hiểu cách JavaScript xử lý DateTime.

Nhận ngày hiện tại

const currentDate = new Date();

Nếu bạn không chuyển bất cứ thứ gì cho hàm tạo ngày, đối tượng ngày được trả về có chứa ngày và giờ hiện tại.

Sau đó, bạn có thể định dạng nó để chỉ trích xuất phần ngày như sau:

const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"

LƯU Ý: Tháng 1 là cạm bẫy 0 0 là phổ biến nhưng không phổ biến. Nó có giá trị kiểm tra kép tài liệu của bất kỳ ngôn ngữ nào (hoặc định dạng cấu hình: ví dụ: Cron đáng chú ý là 1 dựa trên 1) trước khi bạn bắt đầu sử dụng nó.

Nhận tem thời gian hiện tại

Thay vào đó, nếu bạn muốn có được dấu thời gian hiện tại, bạn có thể tạo một đối tượng ngày mới và sử dụng phương thức GetTime ().

const currentDate = new Date();
const timestamp = currentDate.getTime();

Trong JavaScript, một dấu thời gian là số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970.

Nếu bạn không có ý định hỗ trợ

Phân tích một ngày

Chuyển đổi một chuỗi thành đối tượng ngày JavaScript được thực hiện theo các cách khác nhau.

Trình xây dựng đối tượng ngày chấp nhận nhiều định dạng ngày khác nhau:

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");

Lưu ý rằng bạn không cần bao gồm ngày trong tuần vì JS có thể xác định ngày trong tuần cho bất kỳ ngày nào.

Bạn cũng có thể vượt qua trong năm, tháng, ngày, giờ, phút và giây dưới dạng các đối số riêng biệt:

Math.floor(Date.now() /1000);
0

Tất nhiên, bạn luôn có thể sử dụng định dạng ngày ISO:

Math.floor(Date.now() /1000);
1

Tuy nhiên, bạn có thể gặp rắc rối khi bạn không cung cấp múi giờ một cách rõ ràng!

Math.floor(Date.now() /1000);
2

Một trong hai điều này sẽ cung cấp cho bạn ngày 25 tháng 7 năm 2016 00:00:00 giờ địa phương.

Nếu bạn sử dụng định dạng ISO, ngay cả khi bạn chỉ đưa ra ngày chứ không phải thời gian và múi giờ, nó sẽ tự động chấp nhận múi giờ là UTC.

Điều này có nghĩa rằng:

Math.floor(Date.now() /1000);
3

Định dạng một ngày

May mắn thay, JavaScript hiện đại có một số hàm quốc tế hóa thuận tiện được xây dựng trong không gian tên

const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
1 tiêu chuẩn tạo định dạng ngày một hoạt động đơn giản.

Đối với điều này, chúng tôi sẽ cần hai đối tượng: A

const currentDate = new Date();
8 và
const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
3, được khởi tạo với các tùy chọn đầu ra của chúng tôi. Giả sử chúng tôi muốn sử dụng định dạng Mỹ (M/D/Yyyy), điều này sẽ trông giống như:

Math.floor(Date.now() /1000);
4

Nếu thay vào đó chúng tôi muốn định dạng Hà Lan (d/m/yyyy), chúng tôi sẽ chỉ chuyển một mã văn hóa khác cho hàm tạo

const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
4:

Math.floor(Date.now() /1000);
5

Hoặc một dạng dài hơn của định dạng Mỹ, với tên tháng được đánh vần:

Math.floor(Date.now() /1000);
6

Bây giờ, nếu chúng tôi muốn có một định dạng thứ tự thích hợp vào ngày trong tháng, đó là, thứ 14, thay vì chỉ là 14

const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
7. Vay mã FLAVIO Copes Phiên bản Mathias Bynens, để tận dụng một phần khác của
const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
1 cho việc này, chúng ta có thể tùy chỉnh đầu ra ngày của tháng qua
const currentDate = new Date();

const currentDayOfMonth = currentDate.getDate();
const currentMonth = currentDate.getMonth(); // Be careful! January is 0, not 1
const currentYear = currentDate.getFullYear();

const dateString = currentDayOfMonth + "-" + (currentMonth + 1) + "-" + currentYear;
// "27-11-2020"
9:

Math.floor(Date.now() /1000);
7

Thật không may,

const currentDate = new Date();
const timestamp = currentDate.getTime();
0 không được hỗ trợ bởi Internet Explorer (IE) trong bài viết này, nhưng tất cả các công nghệ khác của máy tính để bàn, thiết bị di động và back-end (tức là Node.js) đều có hỗ trợ. Đối với những người cần hỗ trợ IE và hoàn toàn cần các lệnh, sidenote bên dưới (hoặc tốt hơn, một thư viện ngày thích hợp) cung cấp câu trả lời.

Nếu bạn cần hỗ trợ các trình duyệt cũ như IE trước phiên bản 11, định dạng ngày trong JavaScript sẽ khó khăn hơn vì không có chức năng định dạng ngày tiêu chuẩn như

const currentDate = new Date();
const timestamp = currentDate.getTime();
1 trong Python hoặc PHP.

Trong PHP chẳng hạn, hàm

const currentDate = new Date();
const timestamp = currentDate.getTime();
2 cung cấp cho bạn
const currentDate = new Date();
const timestamp = currentDate.getTime();
3.

Bạn có thể sử dụng một sự kết hợp khác nhau của các chữ cái trước

const currentDate = new Date();
const timestamp = currentDate.getTime();
4 để có được ngày ở các định dạng khác nhau. .

Nếu bạn chắc chắn về định dạng bạn muốn sử dụng, tốt nhất là trích xuất các bit riêng lẻ bằng cách sử dụng các hàm JavaScript mà chúng tôi đã đề cập ở trên và tự tạo một chuỗi.

Math.floor(Date.now() /1000);
8

Chúng ta có thể nhận được ngày ở định dạng mm/dd/yyyy là

Math.floor(Date.now() /1000);
9

Vấn đề với giải pháp này là nó có thể cung cấp một chiều dài không nhất quán cho ngày vì một vài tháng và ngày trong tháng là một chữ số và các chữ số khác. Điều này có thể có vấn đề, ví dụ, nếu bạn đang hiển thị ngày trong cột bảng, bởi vì ngày don don xếp hàng.

Chúng ta có thể giải quyết vấn đề này bằng cách sử dụng chức năng PAD PAD có thêm 0 hàng đầu.

new Date/1e3|0
0

Bây giờ, chúng tôi có được ngày chính xác ở định dạng mm/dd/yyyy bằng cách sử dụng:

new Date/1e3|0
1

Nếu chúng ta muốn dd-mm-yyyy thay thế, quá trình này tương tự:

new Date/1e3|0
2

Hãy để Lừa lên ante và cố gắng in ngày trong ngày tháng, định dạng năm. Chúng tôi sẽ cần một ánh xạ các chỉ mục tháng tới tên:

new Date/1e3|0
3

Một số người thích hiển thị ngày là ngày 1 tháng 1 năm 2013. Không có vấn đề gì, tất cả những gì chúng ta cần là chức năng trợ giúp

const currentDate = new Date();
const timestamp = currentDate.getTime();
5 trả về 1, cho 1, 12 cho 12 và 103 cho 103, v.v., và phần còn lại rất đơn giản:

new Date/1e3|0
4

Thật dễ dàng để xác định ngày trong tuần kể từ đối tượng ngày, vì vậy hãy để thêm vào đó trong:

new Date/1e3|0
5

Điểm lớn hơn ở đây là, một khi bạn đã nhận được các số được trích xuất từ ​​ngày, định dạng chủ yếu liên quan đến các chuỗi.

Thay đổi định dạng ngày

Khi bạn biết cách phân tích một ngày và định dạng nó, việc thay đổi ngày từ định dạng này sang định dạng khác chỉ là vấn đề kết hợp cả hai.

Ví dụ: nếu bạn có một ngày ở định dạng ngày 21 tháng 7 năm 2013 và muốn thay đổi định dạng thành 21-07-2013, nó có thể đạt được như thế này:

new Date/1e3|0
6

Sử dụng các chức năng nội địa hóa ngày JavaScript

Các phương thức định dạng ngày mà chúng tôi đã thảo luận ở trên sẽ hoạt động trong hầu hết các ứng dụng, nhưng nếu bạn thực sự muốn bản địa hóa định dạng của ngày, tôi khuyên bạn nên sử dụng phương thức

const currentDate = new Date();
8 đối tượng ____ ____87:

new Date/1e3|0
7

Cung cấp cho chúng tôi một cái gì đó như

const currentDate = new Date();
const timestamp = currentDate.getTime();
8.

Thay vào đó, việc thay đổi địa điểm thành ‘en-us, cung cấp cho ngày 26 tháng 7 năm 2016. Lưu ý cách định dạng thay đổi, nhưng các tùy chọn hiển thị vẫn được giữ nguyên một tính năng rất hữu ích. Như được hiển thị trong phần trước, kỹ thuật dựa trên ____ 73 mới hơn hoạt động rất giống với điều này, nhưng cho phép bạn sử dụng lại một đối tượng Formatter để bạn chỉ cần đặt các tùy chọn một lần.

Với

const currentDate = new Date();
const timestamp = currentDate.getTime();
7, đó là một thói quen tốt để luôn vượt qua các tùy chọn định dạng, ngay cả khi đầu ra có vẻ ổn trên máy tính của bạn. Điều này có thể bảo vệ UI khỏi phá vỡ các địa phương bất ngờ với tên tháng rất dài hoặc trông khó xử vì những cái ngắn.

Nếu tôi muốn một tháng đầy đủ vào tháng 7, tất cả những gì tôi làm là thay đổi tham số tháng trong các tùy chọn thành Long Long. JavaScript xử lý mọi thứ cho tôi. Đối với en-us, bây giờ tôi nhận được ngày 26 tháng 7 năm 2016.

Lưu ý: Nếu bạn muốn trình duyệt tự động sử dụng ngôn ngữ của người dùng, bạn có thể vượt qua trên mạng không xác định là tham số đầu tiên.

Nếu bạn muốn hiển thị phiên bản số của ngày và don don muốn ồn ào với mm/dd/yyyy so với dd/mm/yyyy cho các địa phương khác nhau, tôi đề xuất giải pháp đơn giản sau:

new Date/1e3|0
8

Trên máy tính của tôi, điều này xuất ra

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
1. Nếu bạn muốn đảm bảo rằng tháng và ngày có hai chữ số, chỉ cần thay đổi các tùy chọn:

new Date/1e3|0
9

Điều này đầu ra

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
2. Chỉ là những gì chúng tôi muốn!

Bạn cũng có thể sử dụng một số chức năng liên quan khác để bản địa hóa cách cả thời gian và ngày được hiển thị:

Mã sốĐầu raSự mô tả
if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
0
"4:21:38 sáng"Hiển thị phiên bản địa phương chỉ có thời gian
if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
1
"04:21:38 AM"Hiển thị thời gian bản địa hóa dựa trên các tùy chọn được cung cấp
if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
2
"7/22/2016, 4:21:38 AM"Hiển thị ngày và giờ cho địa phương của người dùng
if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
3
"7/22/2016, 04:21 AM"Hiển thị ngày và thời gian được bản địa hóa dựa trên các tùy chọn được cung cấp

Tính toán ngày và thời gian tương đối

Ở đây, một ví dụ về việc thêm 20 ngày vào ngày JavaScript (tức là, tìm ra ngày 20 ngày sau một ngày đã biết):

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
4

Đối tượng ngày ban đầu hiện đại diện cho ngày 20 ngày sau ngày 20 tháng 7 và

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
3 chứa một chuỗi cục bộ đại diện cho ngày đó. Trên trình duyệt của tôi,
const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
3 chứa 8/9/2016, 3:00:00 PM.

Để tính toán tem thời gian tương đối với sự khác biệt chính xác hơn cả ngày, bạn có thể sử dụng

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
5 và
const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
6 để làm việc với các số nguyên đại diện Bây giờ là 17 giờ sau:

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
5

So sánh ngày

Như mọi thứ khác liên quan đến ngày, so sánh ngày có gotchas riêng.

Đầu tiên, chúng ta cần tạo các đối tượng ngày. May mắn thay, = tất cả công việc. Vì vậy, so sánh ngày 19 tháng 7 năm 2014 và ngày 18 tháng 7 năm 2014 cũng dễ như:

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
6

Kiểm tra bình đẳng là khó khăn hơn, vì hai đối tượng ngày đại diện cho cùng một ngày vẫn là hai đối tượng ngày khác nhau và sẽ không bằng nhau. So sánh các chuỗi ngày là một ý tưởng tồi bởi vì, ví dụ, ngày 20 tháng 7 năm 2014 và ngày 20 tháng 7 năm 2014, đại diện cho cùng một ngày nhưng có các biểu diễn chuỗi khác nhau. Đoạn trích dưới đây minh họa điểm đầu tiên:

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
7

Điều này sẽ xuất ra

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
7.

Trường hợp cụ thể này có thể được sửa chữa bằng cách so sánh các tương đương số nguyên của ngày (tem thời gian của chúng) như sau:

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
8

Tôi đã thấy ví dụ này ở rất nhiều nơi, nhưng tôi không thích nó vì bạn không tạo ra một đối tượng ngày từ một đối tượng ngày khác. Vì vậy, tôi cảm thấy rằng ví dụ này chỉ quan trọng theo quan điểm học thuật. Ngoài ra, điều này đòi hỏi cả hai đối tượng ngày phải đề cập đến cùng một giây, trong khi bạn chỉ có thể muốn biết nếu chúng đề cập đến cùng một ngày hoặc giờ hoặc phút.

Hãy cùng nhìn vào một ví dụ thực tế hơn. Bạn đang cố gắng so sánh liệu sinh nhật người dùng đã nhập có giống như ngày may mắn mà bạn nhận được từ API hay không.

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
9

Cả hai đại diện cho cùng một ngày nhưng thật không may, người dùng của bạn sẽ không nhận được triệu đô la.

Ở đây, vấn đề: JavaScript luôn giả định múi giờ là một trong những trình duyệt cung cấp nó trừ khi có quy định rõ ràng khác.

Điều này có nghĩa là, đối với tôi,

const date1 = new Date("Wed, 27 July 2016 13:30:00");
const date2 = new Date("Wed, 27 July 2016 07:45:00 UTC");
const date3 = new Date("27 July 2016 13:30:00 UTC+05:45");
8 sẽ tạo ra một ngày 1989-12-20t00: 00: 00+5: 45 hoặc 1989-12-19t18: 15: 00Z không giống như 1989-12-20t00: 00: 00Z in Điều khoản của dấu thời gian.

Nó không thể thay đổi chỉ múi giờ của một đối tượng ngày hiện có, vì vậy mục tiêu của chúng tôi hiện là tạo một đối tượng ngày mới nhưng với UTC thay vì múi giờ địa phương.

Chúng tôi sẽ bỏ qua múi giờ của người dùng và sử dụng UTC trong khi tạo đối tượng ngày. Có hai cách để làm điều đó:

  1. Tạo chuỗi ngày được định dạng ISO từ ngày đầu vào của người dùng và sử dụng nó để tạo đối tượng ngày. Sử dụng định dạng ngày ISO hợp lệ để tạo đối tượng ngày trong khi thực hiện mục đích của UTC so với cục bộ rất rõ ràng.
Math.floor(Date.now() / 1000)
0

Điều này cũng hoạt động nếu bạn không chỉ định thời gian vì điều đó sẽ mặc định đến nửa đêm (tức là, 00: 00: 00z):

Math.floor(Date.now() / 1000)
1

Hãy nhớ rằng: nếu hàm tạo ngày được truyền một chuỗi ở định dạng ngày ISO chính xác của yyyy-mm-dd, nó sẽ tự động giả định UTC.

  1. JavaScript cung cấp một hàm ngày.UTC () mà bạn có thể sử dụng để có được dấu thời gian UTC của một ngày. Chúng tôi trích xuất các thành phần từ ngày và truyền chúng đến chức năng.
Math.floor(Date.now() / 1000)
2

Tìm kiếm sự khác biệt giữa hai ngày

Một kịch bản phổ biến bạn sẽ đi qua là tìm thấy sự khác biệt giữa hai ngày.

Chúng tôi thảo luận về hai trường hợp sử dụng:

Tìm số ngày giữa hai ngày

Chuyển đổi cả hai ngày thành dấu thời gian UTC, tìm sự khác biệt trong mili giây và tìm những ngày tương đương.

Math.floor(Date.now() / 1000)
3

Tìm tuổi người dùng từ ngày sinh của họ

Math.floor(Date.now() / 1000)
4

Lưu ý: Chúng tôi có định dạng không chuẩn. Đọc tài liệu API để xác định xem điều này có nghĩa là ngày 12 tháng 10 hay 10 tháng 12 thay đổi theo định dạng ISO phù hợp.

Math.floor(Date.now() / 1000)
5

Tôi biết có nhiều cách ngắn gọn hơn để viết mã này nhưng tôi thích viết nó theo cách này vì sự rõ ràng tuyệt đối của logic.

Gợi ý để tránh ngày địa ngục ngày

Bây giờ chúng tôi cảm thấy thoải mái với số học ngày, chúng tôi đang ở một vị trí để hiểu các thực tiễn tốt nhất để làm theo và lý do để theo dõi chúng.

Nhận DateTime từ người dùng

Nếu bạn nhận được ngày và thời gian từ người dùng, bạn có thể đang tìm kiếm dữ liệu địa phương của họ. Chúng tôi đã thấy trong phần Số học ngày mà hàm tạo

const currentDate = new Date();
8 có thể chấp nhận ngày theo một số cách khác nhau.

Để loại bỏ bất kỳ sự nhầm lẫn nào, tôi luôn khuyên bạn nên tạo một ngày bằng định dạng

Math.floor(Date.now() /1000);
00 ngay cả khi bạn đã có ngày ở định dạng có thể phân tích hợp lệ. Nếu tất cả các lập trình viên trong nhóm của bạn tuân theo quy tắc đơn giản này, sẽ rất dễ dàng để duy trì mã trong thời gian dài vì nó rõ ràng như bạn có thể với hàm tạo
const currentDate = new Date();
8.

Phần thú vị là bạn có thể sử dụng các biến thể cho phép bạn bỏ qua bất kỳ tham số nào trong bốn tham số cuối cùng nếu chúng bằng không; tức là,

Math.floor(Date.now() /1000);
02 giống như
Math.floor(Date.now() /1000);
03 vì các tham số không xác định mặc định về 0.

Ví dụ: nếu bạn đang sử dụng trình chọn ngày và giờ cung cấp cho bạn ngày 2012-10-12 và thời gian 12:30, bạn có thể trích xuất các bộ phận và tạo một đối tượng ngày mới như sau:

Math.floor(Date.now() / 1000)
6

Cố gắng tránh tạo một ngày từ một chuỗi trừ khi nó ở định dạng ngày ISO. Thay vào đó, sử dụng ngày (năm, tháng, ngày, giờ, phút, giây, micro giây).

Chỉ nhận được ngày

Ví dụ, nếu bạn chỉ nhận được ngày, một ngày sinh của người dùng, tốt nhất nên chuyển đổi định dạng thành định dạng ngày ISO hợp lệ để loại bỏ bất kỳ thông tin nào trong múi giờ có thể khiến ngày chuyển về phía trước hoặc lùi khi chuyển đổi sang UTC. Ví dụ:

Math.floor(Date.now() / 1000)
7

Trong trường hợp bạn quên, nếu bạn tạo một đối tượng

const currentDate = new Date();
8 với đầu vào ở định dạng ngày ISO hợp lệ (yyyy-mm-dd), nó sẽ mặc định là UTC thay vì mặc định vào múi giờ của trình duyệt.

Lưu trữ ngày

Luôn lưu trữ DateTime trong UTC. Luôn gửi một chuỗi ngày ISO hoặc dấu thời gian đến phía sau.

Các thế hệ lập trình viên máy tính đã nhận ra sự thật đơn giản này sau những trải nghiệm cay đắng cố gắng hiển thị thời gian địa phương chính xác cho người dùng. Lưu trữ thời gian địa phương ở phía sau là một ý tưởng tồi, tốt hơn là để trình duyệt xử lý việc chuyển đổi sang thời gian cục bộ ở mặt trước.

Ngoài ra, rõ ràng là bạn không bao giờ nên gửi một chuỗi DateTime như ngày 20 tháng 7 năm 1989 12:10 PM đến cuối cùng. Ngay cả khi bạn cũng gửi múi giờ, bạn đang tăng nỗ lực cho các lập trình viên khác để hiểu ý định và phân tích của bạn và lưu trữ chính xác ngày.

Sử dụng các phương thức

Math.floor(Date.now() /1000);
05 hoặc
Math.floor(Date.now() /1000);
06 của đối tượng ngày để chuyển đổi DateTime cục bộ thành UTC.

Math.floor(Date.now() / 1000)
8

Hiển thị ngày và giờ

  1. Nhận dấu thời gian hoặc ngày được định dạng ISO từ API REST.
  2. Tạo một đối tượng
    const currentDate = new Date();
    
    8.
  3. Sử dụng các phương thức
    Math.floor(Date.now() /1000);
    
    08 hoặc
    const currentDate = new Date();
    const timestamp = currentDate.getTime();
    
    7 và
    Math.floor(Date.now() /1000);
    
    10 hoặc thư viện ngày để hiển thị thời gian địa phương.
Math.floor(Date.now() / 1000)
9

Khi nào bạn nên lưu trữ thời gian địa phương?

Đôi khi, điều quan trọng là phải biết múi giờ trong đó một sự kiện xảy ra và chuyển đổi thành một múi giờ duy nhất không thể hủy bỏ xóa sổ thông tin đó.

Nếu bạn đang thực hiện một chương trình khuyến mãi tiếp thị và muốn biết khách hàng nào đã đặt hàng vào giờ ăn trưa, một đơn đặt hàng dường như đã được đặt vào buổi trưa GMT rất hữu ích khi nó thực sự được đặt trong bữa sáng ở New York.

Nếu bạn gặp phải loại tình huống này, sẽ khôn ngoan hơn khi tiết kiệm thời gian địa phương. Như thường lệ, chúng tôi muốn tạo ngày ở định dạng ISO, nhưng chúng tôi phải tìm múi giờ bù trước.

Chức năng đối tượng ngày

Math.floor(Date.now() /1000);
11 cho chúng ta biết số phút mà khi được thêm vào thời gian địa phương nhất định cho thời gian UTC tương đương. Tôi đề nghị chuyển đổi nó thành định dạng (+-) Hh: MM vì nó cho thấy rõ ràng hơn rằng đó là phần bù múi giờ.

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
0

Đối với múi giờ của tôi +05: 45, tôi nhận được -345, đây không chỉ là dấu hiệu ngược lại, mà một con số như -345 có thể hoàn toàn bối rối với nhà phát triển back -end. Vì vậy, chúng tôi chuyển đổi điều này thành +05: 45.

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
1

Bây giờ chúng tôi nhận được phần còn lại của các giá trị và tạo một chuỗi ISO hợp lệ đại diện cho DateTime cục bộ.

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
2

Nếu bạn muốn, bạn có thể bọc UTC và ngày địa phương trong một đối tượng.

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
3

Bây giờ, ở phía sau, nếu bạn muốn tìm hiểu xem sự kiện có xảy ra trước buổi trưa giờ địa phương hay không, bạn có thể phân tích ngày và chỉ cần sử dụng chức năng

Math.floor(Date.now() /1000);
12.

const relativeTime = (() => {
    const start = Date.now();
    return () => Date.now() - start;
})();
4

Chúng tôi đã sử dụng

Math.floor(Date.now() /1000);
13 ở đây, nhưng chúng tôi vẫn lưu trữ nó bởi vì chúng tôi có thể cần nó trong tương lai cho mục đích gỡ lỗi. Bạn thực sự chỉ có thể gửi phần bù múi giờ và thời gian UTC. Nhưng tôi cũng thích lưu trữ thời gian địa phương vì cuối cùng bạn sẽ phải lưu trữ ngày trong cơ sở dữ liệu và có thời gian địa phương được lưu trữ riêng cho phép bạn truy vấn trực tiếp dựa trên trường thay vì phải thực hiện tính toán để có được ngày địa phương.

Đôi khi, ngay cả với múi giờ địa phương được lưu trữ, bạn sẽ muốn hiển thị ngày trong một múi giờ cụ thể. Ví dụ, thời gian cho các sự kiện có thể có ý nghĩa hơn trong múi giờ của người dùng hiện tại nếu chúng là ảo hoặc trong múi giờ nơi chúng sẽ diễn ra về mặt vật lý, nếu họ không. Trong mọi trường hợp, nó đáng để xem xét trước các giải pháp đã được thiết lập để định dạng với tên múi giờ rõ ràng.

Cấu hình máy chủ và cơ sở dữ liệu

Luôn định cấu hình máy chủ và cơ sở dữ liệu của bạn để sử dụng múi giờ UTC. (Lưu ý rằng UTC và GMT không giống nhau, ví dụ, GMT GMT có thể ngụ ý chuyển sang BST trong mùa hè, trong khi UTC không bao giờ.)

Chúng ta đã thấy bao nhiêu chuyển đổi múi giờ đau có thể, đặc biệt là khi chúng ngoài ý muốn. Luôn gửi DateTime UTC và định cấu hình máy chủ của bạn ở Múi giờ UTC có thể làm cho cuộc sống của bạn dễ dàng hơn. Mã back-end của bạn sẽ đơn giản và sạch hơn nhiều vì nó không phải thực hiện bất kỳ chuyển đổi múi giờ nào. Dữ liệu DateTime đến từ các máy chủ trên toàn thế giới có thể được so sánh và sắp xếp dễ dàng.

Mã ở phía sau sẽ có thể giả sử múi giờ của máy chủ là UTC (nhưng vẫn nên kiểm tra tại chỗ để chắc chắn). Kiểm tra cấu hình đơn giản lưu phải suy nghĩ và mã để chuyển đổi mỗi khi mã DateTime mới được viết.

Đó là thời gian để xử lý ngày tốt hơn

Thao tác ngày là một vấn đề khó khăn. Các khái niệm đằng sau các ví dụ thực tế trong bài viết này được áp dụng ngoài JavaScript, và chỉ là khởi đầu khi nói đến việc xử lý dữ liệu và tính toán DateTime đúng cách. Thêm vào đó, mọi thư viện trợ giúp sẽ đi kèm với bộ sắc thái của riêng mình, điều này thậm chí còn đúng với hỗ trợ tiêu chuẩn chính thức cuối cùng {target = Hồi _ blank} cho các loại hoạt động này.

Điểm mấu chốt là: Sử dụng ISO ở mặt sau và để phần đầu trước để định dạng mọi thứ đúng cho người dùng. Các lập trình viên chuyên nghiệp sẽ nhận thức được một số sắc thái và sẽ (tất cả đều quyết định hơn) sử dụng các thư viện DateTime được hỗ trợ tốt ở cả phía sau và mặt trước. Các chức năng tích hợp ở phía cơ sở dữ liệu là một câu chuyện khác, nhưng hy vọng bài viết này cũng cung cấp đủ nền tảng để đưa ra quyết định khôn ngoan hơn trong bối cảnh đó.

Làm thế nào để bạn tạo một dấu thời gian trong javascript?

Cách sử dụng valueOf () để tạo dấu thời gian trong JS. Giống như phương thức GetTime (), chúng ta phải đính kèm phương thức valueOf () vào một đối tượng ngày mới () để tạo dấu thời gian UNIX. Đối tượng ngày mới (), không có thời gian () hoặc valueOf (), trả về thông tin về thời gian hiện tại của bạn.attach the valueOf() method to a new Date() object in order to generate a Unix timestamp. The new Date() object, without getTime() or valueOf() , returns the information about your current time.

Timestamp JavaScript là gì?

Nhận tem thời gian hiện tại Const CurrentDate = new date ();const dấu thời gian = currentDate.dành thời gian();Trong JavaScript, một dấu thời gian là số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970.the number of milliseconds that have passed since January 1, 1970.

Là ngày mới () gettime () utc?

Sử dụng phương thức GetTime () để có dấu thời gian UTC, ví dụ:Ngày mới ().dành thời gian() .Phương pháp trả về số mili giây kể từ Epoch Unix và luôn sử dụng UTC để biểu diễn thời gian.always uses UTC for time representation.

Làm cách nào để tạo dấu thời gian?

Trả lời: Sử dụng phương thức Date.now () Bạn có thể chỉ cần sử dụng ngày JavaScript.Bây giờ () phương pháp để tạo dấu thời gian UTC tính bằng mili giây (là số mili giây kể từ nửa đêm ngày 1 tháng 1 năm 1970).Use the Date. now() Method You can simply use the JavaScript Date. now() method to generate the UTC timestamp in milliseconds (which is the number of milliseconds since midnight Jan 1, 1970).