Phương thức tĩnh Date.now[]
trả về số mili giây đã trôi qua kể từ , được định nghĩa là nửa đêm vào đầu ngày 1 tháng 1 năm 1970, UTC
Date.now[]
Một số đại diện cho số mili giây đã trôi qua kể từ , được định nghĩa là nửa đêm vào đầu ngày 1 tháng 1 năm 1970, UTC
Để cung cấp khả năng bảo vệ chống lại các cuộc tấn công theo thời gian và dấu vân tay, độ chính xác của Date.now[]
có thể được làm tròn tùy thuộc vào cài đặt trình duyệt. Trong Firefox, tùy chọn privacy.reduceTimerPrecision
được bật theo mặc định và mặc định là 20µs trong Firefox 59;
// reduced time precision [2ms] in Firefox 60
Date.now[];
// 1519211809934
// 1519211810362
// 1519211811670
// …
// reduced time precision with `privacy.resistFingerprinting` enabled
Date.now[];
// 1519129853500
// 1519129858900
// 1519129864400
// …
Trong Firefox, bạn cũng có thể bật privacy.resistFingerprinting
, độ chính xác sẽ là 100 mili giây hoặc giá trị của privacy.resistFingerprinting.reduceTimerPrecision.microseconds
, tùy theo giá trị nào lớn hơn
ví dụ
Lấy ngày trong tháng
const d = Ngày mới[];
để ngày = d. hẹn gặp[];
Nhận ngày của một ngày cụ thể
const d = new Date["21 tháng 7 năm 1983 01. 15. 00"];
để ngày = d. hẹn gặp[];
Định nghĩa và cách sử dụng
Phương thức getDate[]
trả về ngày trong tháng [1 đến 31] của một ngày
cú pháp
Thông số
Giá trị trả về
LoạiMô tảMột sốNgày trong tháng [1 đến 31]Hỗ trợ trình duyệt
getDate[]
là một tính năng ECMAScript1 [ES1]
ES1 [JavaScript 1997] được hỗ trợ đầy đủ trên mọi trình duyệt
ChromeEdgeFirefoxSafariOperaIECóCóCóCóCóCóChỉ định một tháng cao hơn 11, sẽ không dẫn đến lỗi nhưng thêm tràn vào năm tiếp theo
Chỉ định một ngày cao hơn tối đa, sẽ không dẫn đến lỗi nhưng cộng dồn sang tháng tiếp theo
chỉ định
const d = ngày mới[2018, 5, 35, 10, 33, 30];
giống như
const d = ngày mới[2018, 6, 5, 10, 33, 30];
Tự mình thử »Sử dụng 6, 4, 3 hoặc 2 số
6 số chỉ định năm, tháng, ngày, giờ, phút, giây
5 số xác định năm, tháng, ngày, giờ và phút
4 số chỉ rõ năm, tháng, ngày, giờ
3 số chỉ rõ năm, tháng, ngày
2 số chỉ định năm và tháng
Bạn không thể bỏ qua tháng. Nếu bạn chỉ cung cấp một tham số, nó sẽ được coi là mili giây
thế kỷ trước
Năm một và hai chữ số sẽ được hiểu là 19xx
JavaScript lưu trữ ngày dưới dạng mili giây
JavaScript lưu trữ ngày tháng dưới dạng số mili giây kể từ ngày 01 tháng 1 năm 1970
Giờ không là ngày 01 tháng 1 năm 1970 00. 00. 00 UTC
Một ngày [24 giờ] là 86 400 000 mili giây
Bây giờ là lúc. mili giây trước ngày 01 tháng 1 năm 1970
Ngày mới [mili giây]
new Date[milliseconds]
tạo một đối tượng ngày mới dưới dạng mili giây cộng với thời gian bằng không
ví dụ
Ngày 01 tháng 1 năm 1970 cộng với 100 000 000 000 mili giây là
const d = Ngày mới [100000000000];
Tự mình thử »Ngày 01 tháng 1 năm 1970 trừ 100 000 000 000 mili giây bằng
const d = Ngày mới[-100000000000];
Tự mình thử »Ngày 01 tháng 1 năm 1970 cộng thêm 24 giờ là
const d = ngày mới[24 * 60 * 60 * 1000];
// hoặc là
const d = Ngày mới [86400000];
01 tháng 1 năm 1970 cộng với 0 mili giây là
Tự mình thử »phương pháp ngày
Khi một đối tượng ngày được tạo, một số phương thức cho phép bạn thao tác trên nó
Các phương thức ngày cho phép bạn lấy và đặt năm, tháng, ngày, giờ, phút, giây và mili giây của các đối tượng ngày, sử dụng giờ địa phương hoặc giờ UTC [phổ quát hoặc GMT]
Phương pháp ngày và múi giờ được đề cập trong các chương tiếp theo
hiển thị ngày
JavaScript sẽ [theo mặc định] xuất ngày ở định dạng chuỗi văn bản đầy đủ
Khi bạn hiển thị một đối tượng ngày tháng trong HTML, nó sẽ tự động được chuyển đổi thành một chuỗi, với phương thức toString[]
Cho dù bạn đang tạo ứng dụng thói quen hàng ngày, blog của riêng bạn hay hầu hết các loại ứng dụng web động khác, có thể bạn sẽ cần phải làm việc với ngày tháng. Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy ngày hiện tại trong JavaScript, để bạn có thể phát triển thành công các ứng dụng của mình. Trong JavaScript, có rất nhiều tùy chọn để lựa chọn, nhưng lớp chính đang được sử dụng là
21.5.2021. // string interpolation
21.5.2021. // string concatenation
5. Nó có rất nhiều phương thức và cách bạn sử dụng nó sẽ phụ thuộc vào định dạng của ngày bạn muốn lấy. Sau đó, tôi sẽ chỉ cho bạn một thư viện JavaScript phổ biến có thể được sử dụng để định dạng thời gian nói chung chứ không chỉ ngày tháng21.5.2021. // string interpolation
21.5.2021. // string concatenation
5 là một lớp học JavaScript khi nói về thời gian. Có một số cách để lấy thời gian và ngày tháng một cách chi tiết từ lớp nàySử dụng các phương thức getDate[], getMonth[] và getFullYear[]
Lưu ý cho phương thức getDate. Điều đầu tiên cần lưu ý khi sử dụng phương pháp này là chúng tôi sử dụng
21.5.2021. // string interpolation
21.5.2021. // string concatenation
7 chứ không phải 21.5.2021. // string interpolation
21.5.2021. // string concatenation
8. Lý do là phương thức 21.5.2021. // string interpolation
21.5.2021. // string concatenation
8 trả về ngày trong tuần, vì vậy vì bây giờ là thứ Sáu khi tôi đang viết, phương thức 21.5.2021. // string interpolation
21.5.2021. // string concatenation
8 sẽ trả về 5. Phương thức 21.5.2021. // string interpolation
21.5.2021. // string concatenation
7 thực sự làm những gì chúng ta cần trong trường hợp này, nó trả về số ngày của tháng. Vì vậy, đối với tôi, ngay bây giờ ngày của tháng là 21 [vì đó là 21. 05. 2021. ]. Những phương pháp này rất dễ bị nhầm lẫn, vì vậy tôi muốn cảnh báoLưu ý cho phương thức getMonth. Một điều khác cần chú ý là chỉ số tháng bắt đầu từ 0, vì vậy tháng 1 là 0, tháng 2 là 1, v.v. Về cơ bản, khi lấy số tháng, chúng ta cần thêm 1
Bây giờ chúng ta đã giải quyết được các vấn đề tiềm ẩn, hãy viết mã
let date = new Date[]
let day = date.getDate[];
let month = date.getMonth[]+1;
let year = date.getFullYear[];
let fullDate = `${day}.${month}.${year}.`;
console.log[fullDate];
Lúc đầu, chúng tôi ví dụ lớp
let month = String[date.getMonth[]+1].padStart[2, "0"];
2 và đối với mỗi phần của ngày, chúng tôi sử dụng một biến để tách nó ra và kiểm tra từng phần.Chúng tôi đã đặt mỗi kết quả của phương thức vào một biến riêng biệt và sau đó sử dụng phép nội suy chuỗi để tạo ra một ngày hoàn chỉnh. Nội suy chuỗi là khi chúng ta truyền các biến vào chuỗi; . Nếu bạn không thích phép nội suy chuỗi, thì cách khác là chỉ cần nối [thêm] các chuỗi lại với nhau như thế này
let fullDate = day + "." + month + "." + year + ".";
Kết quả của chúng tôi sẽ giống nhau trong từng trường hợp
21.5.2021. // string interpolation
21.5.2021. // string concatenation
Giả sử bạn muốn hiển thị tháng là
let month = String[date.getMonth[]+1].padStart[2, "0"];
4 chứ không phải let month = String[date.getMonth[]+1].padStart[2, "0"];
5. Thật không may, lớp let month = String[date.getMonth[]+1].padStart[2, "0"];
2 tích hợp của JavaScript không có nhiều tùy chọn để định dạng ngày thành chuỗi như các thư viện khác. Vì vậy, trong trường hợp này, chúng ta sẽ cần tự định dạng, điều mà chúng ta có thể thực hiện với một số phương thức của JavaScript trên chuỗi, chẳng hạn như let month = String[date.getMonth[]+1].padStart[2, "0"];
7. Nó làm gì nó 'đệm' [đặt trước] chuỗi của chúng ta bằnglet month = String[date.getMonth[]+1].padStart[2, "0"];
8, cho đến khi nó chạm tới let month = String[date.getMonth[]+1].padStart[2, "0"];
9. Vì vậy, vì chúng tôi muốn tạo let month = String[date.getMonth[]+1].padStart[2, "0"];
4 từ let month = String[date.getMonth[]+1].padStart[2, "0"];
5, chúng tôi muốn đệm chuỗi của mình bằng "0" cho đến khi nó đạt đến độ dài 2. Trước tất cả những điều đó, chúng ta cần truyền 21.05.2021.
2 để gõ 21.05.2021.
3. Truyền đang thay đổi rõ ràng loại biến từ biến này sang biến khác. Ở đây chúng tôi thay đổi loại 21.05.2021.
4 thành loại 21.05.2021.
3. Biến 21.05.2021.
6 của chúng ta sẽ thay đổi thànhlet month = String[date.getMonth[]+1].padStart[2, "0"];
Điều này sẽ thay đổi định dạng ngày của chúng tôi để
21.05.2021.
Sử dụng Phương thức toJSON[]
Phương pháp trước để lại khoảng trống cho định dạng ngày tháng; . Khi sử dụng
let date = new Date[].toJSON[];
console.log[date];
0, nó trả về định dạng let date = new Date[].toJSON[];
console.log[date];
1 cùng với định dạng thời gian, let date = new Date[].toJSON[];
console.log[date];
2Hãy xem trước phương pháp này
let date = new Date[].toJSON[];
console.log[date];
Điều này sẽ xuất ra
2021-05-21T13:42:07.553Z
Bạn sẽ thấy một đầu ra tương tự như thế này, nhưng rõ ràng đầu ra của bạn sẽ khác tùy thuộc vào thời điểm bạn chạy mã. Chúng tôi thấy rằng chúng tôi chỉ cần ngày, đó là 10 ký tự đầu tiên, vì vậy hãy sử dụng phương thức
let date = new Date[].toJSON[];
console.log[date];
3 của JavaScript. Phương pháp let date = new Date[].toJSON[];
console.log[date];
4 cắt một chuỗi từ điểm let date = new Date[].toJSON[];
console.log[date];
5 đến điểm let date = new Date[].toJSON[];
console.log[date];
6; . Hãy thử nólet date = new Date[].toJSON[].slice[0, 10];
Điều này sẽ trở lại
2021-05-21
Chúng ta có thể cắt thêm chuỗi này, vì vậy chúng ta có thể sắp xếp các phần thành các biến
let date = new Date[].toJSON[];
console.log[date];
7 và let date = new Date[].toJSON[];
console.log[date];
8, nhưng sẽ làm quá sức, vì vậy nếu bạn cần một định dạng khác, chỉ cần sử dụng một cách tiếp cận khácSử dụng các phương thức toISOString[],_ toUTCString[]_, và toLocaleDateString[]
Sự thật thú vị.
let date = new Date[].toJSON[];
console.log[date];
9 trả về kết quả chính xác giống như let date = new Date[].toJSON[];
console.log[date];
0, vì vậy chúng tôi sẽ bỏ qua nó và đi thẳng vào 2021-05-21T13:42:07.553Z
1Sử dụng toUTCString[]let date = new Date[].toUTCString[];
console.log[date];
Sẽ cung cấp cho chúng tôi đầu ra
let fullDate = day + "." + month + "." + year + ".";
0Định dạng này cũng trả về ngày và giờ, với việc bổ sung ngày trong tuần. Như tôi đã nói trong phần
let date = new Date[].toJSON[];
console.log[date];
0, bạn có thể phân tích kết quả này sâu hơn, nhưng có lẽ sẽ không cần thiết vì bạn có các cách tiếp cận khác nhau. Vì chúng tôi chỉ nhận được ngày, chúng tôi có thể cắt phần này. Bây giờ không cần truyền, vì đây đã là một 21.05.2021.
3Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
let fullDate = day + "." + month + "." + year + ".";
1Điều này sẽ cung cấp cho chúng tôi đầu ra mong muốn
let fullDate = day + "." + month + "." + year + ".";
2Phương thức này trả về ngày ở định dạng tương ứng với ngôn ngữ hệ thống của bạn. Nó thậm chí còn có tùy chọn để chuyển ngôn ngữ mong muốn làm đối số và thậm chí cả các tùy chọn định dạng ngày đơn giản như
2021-05-21T13:42:07.553Z
4, 21.05.2021.
6, 2021-05-21T13:42:07.553Z
6, v.v. Chúng tôi sẽ chia điều này thành 3 ví dụtùy chọn mặc định
Hãy xem điều gì sẽ xảy ra khi chúng ta gọi phương thức mà không có bất kỳ đối số nào
3let fullDate = day + "." + month + "." + year + ".";
Đầu ra, đối với tôi, sẽ là
4let fullDate = day + "." + month + "." + year + ".";
Đầu ra này phụ thuộc vào ngôn ngữ của bạn, của tôi là Hoa Kỳ nên định dạng sẽ là định dạng ngày của Hoa Kỳ
Chỉ chuyển tùy chọn ngôn ngữ
Nếu bạn muốn xác định một ngôn ngữ cụ thể, bạn có thể chuyển nó dưới dạng đối số chuỗi, như vậy
5let fullDate = day + "." + month + "." + year + ".";
7 là mã địa phương của Pháp. Bạn có thể tìm thấy tất cả các mã ngôn ngữ ở đây2021-05-21T13:42:07.553Z
Định dạng ngày của Pháp là
7, vì vậy đầu ra sẽ là21.05.2021.
6let fullDate = day + "." + month + "." + year + ".";
Vượt qua cả tùy chọn và tùy chọn ngôn ngữ
Cuối cùng, hãy đi qua các tùy chọn có thể. Chỉ tháng và ngày trong tuần mới có thể có giá trị "dài" hoặc "số". Ngày và năm chỉ có thể là "số"
let fullDate = day + "." + month + "." + year + ".";
7Chúng tôi sẽ loại trừ
2021-05-21T13:42:07.553Z
4 vì chúng tôi chỉ cần ngày. Điều này sẽ xuất ralet fullDate = day + "." + month + "." + year + ".";
8Bây giờ bạn cũng đã học được một chút tiếng Pháp
Đang sử dụng[]
Phương thức
let date = new Date[].toJSON[].slice[0, 10];
0 trả về số mili giây được truyền từ ngày 1 tháng 1 năm 1970 - là thời điểm bắt đầu kỷ nguyên Unix trong lập trình. Nếu chúng tôi chuyển số mili giây cho hàm tạo let month = String[date.getMonth[]+1].padStart[2, "0"];
2, chúng tôi có thể nhận được ngày định dạng ISO. Hãy thử nólet fullDate = day + "." + month + "." + year + ".";
9Cái nào sẽ xuất ra, một lần nữa, cho tôi
21.5.2021. // string interpolation
21.5.2021. // string concatenation
0Bây giờ nếu chúng ta chuyển
let date = new Date[].toJSON[].slice[0, 10];
2 đó cho hàm tạo, như đã đề cập ở trên, chúng ta có thể tạo một đối tượng ngày tháng với thời gian đó21.5.2021. // string interpolation
21.5.2021. // string concatenation
1Điều này sẽ xuất ra
21.5.2021. // string interpolation
21.5.2021. // string concatenation
2Và chúng tôi đã biết cách xử lý việc này, sử dụng
let date = new Date[].toJSON[];
console.log[date];
3Thời điểm sử dụng. js
Đây chỉ là một giải pháp thay thế cho việc sử dụng tất cả các phương thức trước đó, một thư viện được tạo riêng cho ngày và giờ trong JavaScript. Bạn có thể truy cập trang web của họ tại đây. Mặc dù thư viện này có khá nhiều tính năng, nhưng tôi sẽ chỉ giới thiệu cách tạo và thực hiện định dạng đơn giản cho ngày tháng. Hãy xem nó hoạt động như thế nào
21.5.2021. // string interpolation
21.5.2021. // string concatenation
3Nếu bạn không chuyển bất kỳ thứ gì sang định dạng, bạn sẽ nhận được bản trình bày ISO của ngày, tuy nhiên, bạn có thể chọn bất kỳ định dạng nào bạn muốn [và định dạng này được xác định trong tài liệu của Moment]
Đoạn mã trên sẽ xuất ra
21.5.2021. // string interpolation
21.5.2021. // string concatenation
4Tùy chọn này không phải là tốt nhất nếu tất cả những gì bạn đang tìm kiếm là truy xuất ngày hiện tại. Điều này là do thư viện Moment khá lớn và sẽ làm phình to mã JS của bạn khi được sử dụng trong các ứng dụng giao diện người dùng. Mặt khác, nếu bạn cần thao tác ngày giờ hoặc định dạng nâng cao hơn, thì đây là một thư viện tuyệt vời
Phần kết luận
Có rất nhiều cách để truy xuất ngày tháng trong JavaScript, bạn chỉ cần chọn một cách phù hợp với trường hợp sử dụng của mình. Đối với những nhu cầu rất đơn giản, như tạo ngày tháng hoặc định dạng rất đơn giản, thì bạn có thể sử dụng lớp
let month = String[date.getMonth[]+1].padStart[2, "0"];
2 tích hợp sẵn. Nếu bạn cần thứ gì đó phức tạp hơn một chút với ngày giờ, khoảnh khắc. js là một thư viện để lựa chọn