Hướng dẫn what is timestamps in javascript? - dấu thời gian trong javascript là gì?

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 ____10. Sử dụng

Math.floor(Date.now() /1000);
1 thay vào đó vào thời điểm đó: it might break in 2038 and return negative numbers if you do the
Math.floor(Date.now() /1000);
0 magic. Use
Math.floor(Date.now() /1000);
1 instead by that time

Giải pháp

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

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

Math.floor(Date.now() /1000);
3 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

Math.floor(Date.now() /1000);
4 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
Math.floor(Date.now() /1000);
4 trong nội bộ làm điều tương tự:
Math.floor(Date.now() /1000);
6

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 giải thích nhỏ về những gì

Math.floor(Date.now() /1000);
0 làm:

Bằng cách cung cấp

Math.floor(Date.now() /1000);
8, 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ừ
Math.floor(Date.now() /1000);
9 thành một số nguyên.
Bit operations require absolute numbers which turns the decimal result from
Math.floor(Date.now() /1000);
9 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

Math.floor(Date.now() /1000);
1 sẽ xuất hiện.

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ề

new Date/1e3|0
1 theo liên kết này:
Math.floor(Date.now() /1000);
3 @ mdn

Hướng dẫn what is timestamps in javascript? - dấu thời gian trong javascript là gì?

Trong JavaScript, dấu thời gian thường được liên kết với thời gian Unix. Và có nhiều phương pháp khác nhau để tạo thời gian như vậy.

Khi chúng tôi sử dụng các phương pháp JavaScript khác nhau để tạo dấu thời gian, chúng sẽ trả về số mili giây đã được thông qua kể từ ngày 1 tháng 1 năm 1970 UTC (Thời gian UNIX).

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng các phương thức sau để tạo dấu thời gian UNIX trong JavaScript:

  • Phương pháp
    new Date/1e3|0
    
    3.
  • Phương pháp
    Math.floor(Date.now() /1000);
    
    3.
  • Phương pháp
    new Date/1e3|0
    
    5.
var timestamp = new Date().getTime();

console.log(timestamp)
// 1660926192826

Trong ví dụ trên, chúng tôi đã tạo một đối tượng

new Date/1e3|0
6 và lưu trữ nó trong biến
new Date/1e3|0
7.

Chúng tôi cũng gắn phương thức

new Date/1e3|0
3 vào đối tượng
new Date/1e3|0
6 bằng cách sử dụng ký hiệu DOT:
if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}
0. Điều này đã trả lại thời gian UNIX tại thời điểm đó trong mili giây: 1660926192826.

Để có được dấu thời gian trong vài giây, bạn chia thời gian hiện tại cho 1000. Đó là:

var timestamp = new Date().getTime();

console.log(Math.floor(timestamp / 1000))

Cách sử dụng Math.floor(Date.now() /1000); 3 để tạo dấu thời gian trong JS

var timestamp = Date.now();

console.log(timestamp)
// 1660926758875

Trong ví dụ trên, chúng tôi đã có dấu thời gian UNIX tại thời điểm cụ thể đó bằng phương pháp

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

Các dấu thời gian bạn thấy trong các ví dụ này sẽ khác với của bạn. Điều này là do bạn sẽ có được dấu thời gian của thời gian đã trôi qua từ ngày 1 tháng 1 năm 1970 UTC cho đến thời điểm hiện tại của bạn.

Cách sử dụng new Date/1e3|0 5 để tạo dấu thời gian trong JS

var timestamp = new Date().valueOf();

console.log(timestamp)
// 1660928777955

Giống như phương thức

new Date/1e3|0
3, chúng ta phải gắn phương thức
new Date/1e3|0
5 vào đối tượng
new Date/1e3|0
6 để tạo dấu thời gian UNIX.

Đối tượng

new Date/1e3|0
6, không có
new Date/1e3|0
3 hoặc
new Date/1e3|0
5, trả về thông tin về thời gian hiện tại của bạn.

Bản tóm tắt

Trong bài viết, chúng tôi đã nói về dấu thời gian trong JavaScript. Thường có liên quan đến thời gian Unix.

Chúng tôi đã thấy ba phương pháp khác nhau có thể được sử dụng để tạo dấu thời gian trong JavaScript với các ví dụ mã.

Mã hóa hạnh phúc!



Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Có gì trong một dấu thời gian?

Dấu thời gian Dấu thời gian là một phần của thông báo nhật ký đánh dấu thời gian xảy ra sự kiện. Trong quá trình ăn, chúng ta có thể phát hiện dấu thời gian thông điệp, chuyển đổi nó thành thời gian của Unix Epoch (số mili giây kể từ nửa đêm, ngày 1 tháng 1 năm 1970 UTC) và lập chỉ mục.the part of a log message that marks the time that an event occurred. During ingestion, we can detect the message timestamp, convert it to Unix epoch time (the number of milliseconds since midnight, January 1, 1970 UTC), and index it.

Ví dụ về dấu thời gian là gì?

Các giá trị dấu thời gian được chấp nhận trong định dạng 'yyyy - mmm DD hh: mm: ss.SSSSSS ', và có thể chỉ bao gồm ngày, hoặc chỉ là thời gian, có hoặc không có phần thứ hai phân số.Ví dụ: bạn có thể chỉ định các giá trị dấu thời gian như '1966‑07‑30', '08: 30: 00 'hoặc' 1985‑09‑25 17: 45: 30.005 '.1966‑07‑30' , '08:30:00' , or '1985‑09‑25 17:45:30.005' .

Khi nào chúng ta có thể sử dụng dấu thời gian?

Dấu thời gian thường được sử dụng để ghi nhật ký các sự kiện hoặc trong một chuỗi các sự kiện (SOE), trong trường hợp đó, mỗi sự kiện trong nhật ký hoặc SOE được đánh dấu bằng dấu thời gian.Thực tế tất cả các hệ thống tệp máy tính lưu trữ một hoặc nhiều dấu thời gian trong siêu dữ liệu mỗi tệp.

Số dấu thời gian là gì?

Chính xác hơn, dấu thời gian là một giá trị số nguyên thể hiện số giây trôi qua từ một ngày tùy ý, tức là nửa đêm (UTC) ngày 1 tháng 1 năm 1970, được gọi là Epoch không tính bước nhảy vọt (trong ISO 8601: 1970-01-01T00: 00: 00z).an integer numeric value that expresses the number of seconds elapsed from an arbitrary date, ie midnight (UTC) of January 1, 1970, which is called epoch not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z).