Hãy gặp một đối tượng tích hợp mới. Ngày. Nó lưu trữ ngày, giờ và cung cấp các phương thức quản lý ngày/giờ
Chẳng hạn, chúng ta có thể sử dụng nó để lưu trữ thời gian tạo/sửa đổi, để đo thời gian hoặc chỉ để in ra ngày hiện tại
Sự sáng tạo
Để tạo một đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 mới, hãy gọi // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
4 với một trong các đối số sau// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
4Không có đối số – tạo một đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 cho ngày và giờ hiện tạilet now = new Date[];
alert[ now ]; // shows current date/time
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
7Tạo một đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 với thời gian bằng số mili giây [1/1000 giây] được truyền sau ngày 1 tháng 1 năm 1970 UTC+0// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
Một số nguyên đại diện cho số mili giây đã trôi qua kể từ đầu năm 1970 được gọi là dấu thời gian
Đó là một đại diện số nhẹ của một ngày. Chúng tôi luôn có thể tạo một ngày từ dấu thời gian bằng cách sử dụng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
9 và chuyển đổi đối tượng // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 hiện có thành dấu thời gian bằng phương thức // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
01 [xem bên dưới]Ngày trước 01. 01. 1970 có dấu thời gian âm, e. g
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
02Nếu có một đối số duy nhất và đó là một chuỗi thì nó sẽ được phân tích cú pháp tự động. Thuật toán giống như cách sử dụng của
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
03, chúng tôi sẽ trình bày sau// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
0// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
04Tạo ngày với các thành phần đã cho theo múi giờ địa phương. Chỉ có hai đối số đầu tiên là bắt buộc
05 phải có 4 chữ số. Để tương thích, 2 chữ số cũng được chấp nhận và coi là// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
06, e. g.// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
07 giống như// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
08 ở đây, nhưng luôn khuyến khích sử dụng 4 chữ số// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Số lượng ________ 109 bắt đầu bằng ________ 210 [tháng 1], cho đến ________ 211 [tháng 12]
- Tham số
12 thực sự là ngày trong tháng, nếu không có thì// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
13 được giả định// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Nếu không có
14, chúng được coi là bằng nhau// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
10// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
Ví dụ
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
1Độ chính xác tối đa là 1 ms [1/1000 giây]
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
8Thành phần ngày truy cập
Có các phương thức để truy cập năm, tháng, v.v. từ đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3getFullYear[]Lấy năm [4 chữ số]getMonth[]Lấy tháng, từ 0 đến 11. getDate[] Lấy ngày trong tháng, từ 1 đến 31, tên của phương thức có vẻ hơi lạ. getHours[], getMinutes[], getSeconds[], getMilliseconds[] Nhận các thành phần thời gian tương ứngKhông phải
17, mà là // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
18// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
Nhiều công cụ JavaScript triển khai một phương pháp không chuẩn
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
17. Phương pháp này không được chấp nhận. Đôi khi nó trả về năm có 2 chữ số. Xin vui lòng không bao giờ sử dụng nó. Có // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
18 cho nămNgoài ra, chúng ta có thể nhận được một ngày trong tuần
getDay[]Lấy ngày trong tuần, từ// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
10 [Chủ Nhật] đến // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
82 [Thứ Bảy]. Ngày đầu tiên luôn là Chủ nhật, ở một số quốc gia thì không, nhưng không thể thay đổiTất cả các phương pháp trên trả về các thành phần liên quan đến múi giờ địa phương
Ngoài ra còn có các đối tác UTC của chúng, trả về ngày, tháng, năm, v.v. cho múi giờ UTC+0. getUTCFullYear[], getUTCMonth[], getUTCDay[]. Chỉ cần chèn
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
83 ngay sau // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
84Nếu múi giờ địa phương của bạn bị dịch chuyển so với UTC, thì mã bên dưới sẽ hiển thị các giờ khác nhau
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
8Bên cạnh các phương thức đã cho, có hai phương thức đặc biệt không có biến thể UTC
dành thời gian[]Trả về dấu thời gian cho ngày – một số mili giây được truyền từ ngày 1 tháng 1 năm 1970 UTC+0
getTimezoneOffset[]Trả về chênh lệch giữa UTC và múi giờ địa phương, tính bằng phút
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
9Đặt thành phần ngày
Các phương pháp sau đây cho phép thiết lập các thành phần ngày/giờ
85// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
86// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
87// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
88// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
89// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
80// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
81// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
82 [đặt toàn bộ ngày theo mili giây kể từ 01. 01. 1970 UTC]// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
Chẳng hạn, mọi người trong số họ ngoại trừ
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
83 đều có biến thể UTC. // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
84Như chúng ta có thể thấy, một số phương thức có thể thiết lập nhiều thành phần cùng một lúc, ví dụ như
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
85. Các thành phần không được đề cập không được sửa đổiVí dụ
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
1tự động sửa lỗi
Tự động sửa lỗi là một tính năng rất tiện dụng của đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3. Chúng tôi có thể đặt các giá trị ngoài phạm vi và nó sẽ tự động điều chỉnhVí dụ
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3Các thành phần ngày nằm ngoài phạm vi được phân phối tự động
Giả sử chúng ta cần tăng ngày “28 Feb 2016” thêm 2 ngày. Có thể là “2 tháng 3” hoặc “1 tháng 3” trong trường hợp năm nhuận. Chúng ta không cần phải suy nghĩ về nó. Chỉ cần thêm 2 ngày. Đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 sẽ làm phần còn lại// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
0Tính năng đó thường được sử dụng để lấy ngày sau một khoảng thời gian nhất định. Chẳng hạn, hãy lấy ngày cho “70 giây sau bây giờ”
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
1Chúng tôi cũng có thể đặt giá trị bằng 0 hoặc thậm chí âm. Ví dụ
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
2Ngày thành số, ngày khác
Khi một đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3 được chuyển đổi thành số, nó sẽ trở thành dấu thời gian giống như // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
01// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
3Tác dụng phụ quan trọng. ngày có thể được trừ đi, kết quả là sự khác biệt của chúng trong ms
Điều đó có thể được sử dụng để đo thời gian
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
4Ngày. bây giờ[]
Nếu chỉ muốn đo thời gian thì không cần đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3Có một phương thức đặc biệt
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
91 trả về dấu thời gian hiện tạiVề mặt ngữ nghĩa, nó tương đương với
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
92, nhưng nó không tạo đối tượng trung gian // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3. Vì vậy, nó nhanh hơn và không gây áp lực cho việc thu gom rácNó được sử dụng chủ yếu để thuận tiện hoặc khi hiệu suất quan trọng, chẳng hạn như trong các trò chơi bằng JavaScript hoặc các ứng dụng chuyên dụng khác
Vì vậy, điều này có lẽ là tốt hơn
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
5điểm chuẩn
Nếu chúng ta muốn có một điểm chuẩn đáng tin cậy về chức năng ngốn CPU, chúng ta nên cẩn thận
Chẳng hạn, hãy đo hai hàm tính toán sự khác biệt giữa hai ngày. cái nào nhanh hơn?
Các phép đo hiệu suất như vậy thường được gọi là “điểm chuẩn”
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
6Hai cái này thực hiện chính xác cùng một việc, nhưng một trong số chúng sử dụng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
01 rõ ràng để lấy ngày tính bằng ms và cái còn lại dựa vào phép biến đổi ngày thành số. Kết quả của họ luôn giống nhauVì vậy, cái nào nhanh hơn?
Ý tưởng đầu tiên có thể là chạy chúng nhiều lần liên tiếp và đo chênh lệch thời gian. Đối với trường hợp của chúng tôi, các chức năng rất đơn giản, vì vậy chúng tôi phải thực hiện ít nhất 100000 lần
Hãy đo lường
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
7Ồ. Sử dụng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
95 nhanh hơn rất nhiều. Đó là bởi vì không có chuyển đổi loại, các công cụ sẽ tối ưu hóa dễ dàng hơn nhiềuĐược rồi, chúng tôi có một cái gì đó. Nhưng đó vẫn chưa phải là một điểm chuẩn tốt
Hãy tưởng tượng rằng tại thời điểm chạy
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
96, CPU đang làm một việc gì đó song song và nó đang lấy tài nguyên. Và đến thời điểm chạy // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
97 thì công việc đó đã hoàn thànhMột kịch bản khá thực tế cho một hệ điều hành đa tiến trình hiện đại
Do đó, điểm chuẩn đầu tiên sẽ có ít tài nguyên CPU hơn điểm chuẩn thứ hai. Điều đó có thể dẫn đến kết quả sai
Để đo điểm chuẩn đáng tin cậy hơn, toàn bộ gói điểm chuẩn phải được chạy lại nhiều lần
Ví dụ, như thế này
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
8Các công cụ JavaScript hiện đại bắt đầu chỉ áp dụng tối ưu hóa nâng cao cho “mã nóng” thực thi nhiều lần [không cần tối ưu hóa những thứ hiếm khi được thực thi]. Vì vậy, trong ví dụ trên, lần thực hiện đầu tiên không được tối ưu hóa tốt. Chúng tôi có thể muốn thêm một lần khởi động
// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date[0];
alert[ Jan01_1970 ];
// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date[24 * 3600 * 1000];
alert[ Jan02_1970 ];
9Hãy cẩn thận khi thực hiện microbenchmarking
Các công cụ JavaScript hiện đại thực hiện nhiều tối ưu hóa. Họ có thể điều chỉnh kết quả của “các bài kiểm tra nhân tạo” so với “việc sử dụng thông thường”, đặc biệt khi chúng tôi đánh giá một thứ gì đó rất nhỏ, chẳng hạn như cách thức hoạt động của một nhà điều hành hoặc một chức năng tích hợp sẵn. Vì vậy, nếu bạn thực sự muốn hiểu hiệu suất, thì hãy nghiên cứu cách thức hoạt động của công cụ JavaScript. Và sau đó, bạn có thể sẽ không cần microbenchmark nữa
Gói bài viết tuyệt vời về V8 có thể được tìm thấy tại https. //mrale. ph
Ngày. phân tích cú pháp từ một chuỗi
Phương pháp Ngày. parse[str] có thể đọc một ngày từ một chuỗi
Định dạng chuỗi phải là.
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
98, ở đâu
99 – là ngày. năm tháng ngày// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Ký tự
10 được sử dụng làm dấu phân cách// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
11 – là thời gian. giờ, phút, giây và mili giây// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Phần tùy chọn
12 biểu thị múi giờ ở định dạng// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
13. Một chữ cái duy nhất// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
14 có nghĩa là UTC+0// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
Cũng có thể có các biến thể ngắn hơn, như
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
99 hoặc // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
16 hoặc thậm chí là // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
17Cuộc gọi tới
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
18 phân tích cú pháp chuỗi theo định dạng đã cho và trả về dấu thời gian [số mili giây từ ngày 1 tháng 1 năm 1970 UTC+0]. Nếu định dạng không hợp lệ, trả về // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
19Ví dụ
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
0Chúng ta có thể ngay lập tức tạo một đối tượng
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
30 từ dấu thời gian// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
1Bản tóm tắt
- Ngày và giờ trong JavaScript được biểu diễn bằng đối tượng Date. Chúng tôi không thể tạo “chỉ ngày” hoặc “chỉ thời gian”.
3 đối tượng luôn mang theo cả hai// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Các tháng được tính từ 0 [có, tháng 1 là tháng 0]
- Các ngày trong tuần trong
32 cũng được tính từ 0 [đó là Chủ nhật]// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
3 tự động sửa khi các thành phần nằm ngoài phạm vi được đặt. Tốt cho việc cộng/trừ ngày/tháng/giờ// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Ngày có thể được trừ đi, đưa ra sự khác biệt của chúng tính bằng mili giây. Đó là bởi vì một
3 trở thành dấu thời gian khi được chuyển đổi thành một số// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
- Sử dụng
91 để lấy nhanh dấu thời gian hiện tại// 31 Dec 1969 let Dec31_1969 = new Date[-24 * 3600 * 1000]; alert[ Dec31_1969 ];
Lưu ý rằng không giống như nhiều hệ thống khác, dấu thời gian trong JavaScript tính bằng mili giây, không phải giây
Đôi khi chúng ta cần các phép đo thời gian chính xác hơn. Bản thân JavaScript không có cách đo thời gian tính bằng micro giây [1 phần triệu giây], nhưng hầu hết các môi trường đều cung cấp nó. Chẳng hạn, trình duyệt có hiệu suất. now[] cung cấp số mili giây kể từ khi bắt đầu tải trang với độ chính xác micro giây [3 chữ số sau dấu chấm]
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
2Nút. js có mô-đun
// 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
36 và các cách khác. Về mặt kỹ thuật, hầu hết mọi thiết bị và môi trường đều cho phép đạt được độ chính xác cao hơn, chỉ là không có trong // 31 Dec 1969
let Dec31_1969 = new Date[-24 * 3600 * 1000];
alert[ Dec31_1969 ];
3