1. Định dạng thời gian trong JavaScript

Định dạng thời gian trong Javascript được hỗ trợ đầy đủ từ năm, tháng, ngày, giờ, phút, giây đến mili giây. Thời gian có thể là một chuỗi đầy đủ hay một dãy số như mình đã nói ở bài trước. Nếu chúng ta không định dạng thì kết quả hiển thị ngày tháng như trên khá là khó hiểu.

Có 4 kiểu định dạng thời gian trong Js là:

  • fulldate : định dạng đầy đủ ngày tháng.
  • ISO date : định dạng theo kiểu ISO ngày – tháng – năm – giờ – phút – giây
  • Long date : định dạng dài ngày – tháng – năm ví dụ: 21 Mar 2021
  • Short date : định dạng ngày ngắn ngày/tháng/năm ví dụ: 21/12/2021

Định dạng ISO tuân theo một tiêu chuẩn nghiêm ngặt trong JavaScript. Các định dạng khác không được xác định rõ ràng và có thể là trình duyệt cụ thể.

2. Định dạng ngày tháng theo ISO trong JavaScript

ISO 8601 là tiêu chuẩn quốc tế để diễn tả ngày tháng và thời gian. Cú pháp của ISO 8601 (YYYY-MM-DD) nó cũng khớp với định dạng ngày tháng của JavaScript

const d = new Date("2021-12-21");
document.write(d);

Các tính toán ngày tháng sẽ liên quan đến múi giờ của bạn. Phụ thuộc vào múi giờ của bạn, kết quả trên có thể biến thiên.

Nó có thể được viết mà không cần chỉ định ngày (YYYY-MM).

const d = new Date("2021-12"); 
document.write(d);

Múi giờ có thể ảnh hưởng đến kết quả. Nó cũng có thể được viết dưới dạng không có tháng lẫn ngày (YYYY)

const d = new Date("2021");
document.write(d);

Ta có thể được viết có thêm thông tin giờ, phút, và giây (YYYY-MM-DDTHH:MM:SS)

const d = new Date("2021-12-25T12:00:00Z");
document.write(d);

Chữ T trong chuỗi ngày tháng, nằm giữa ngày tháng và thời gian, là chỉ thời gian UTC. UTC (Universal Time Coordinated) cũng giống với GMT (Greenwich Mean Time). Nếu bạn muốn sửa đổi thời gian liên quan đến UTC, hãy xóa Z và thêm + HH: MM hoặc -HH: MM để thay thế. Việc bỏ qua T hoặc Z trong chuỗi ngày-giờ có thể cho các kết quả khác nhau trong các trình duyệt khác nhau.

3. Múi giờ trong Javasript

Khi đặt ngày, mà không chỉ định múi giờ, JavaScript sẽ sử dụng múi giờ của trình duyệt. Khi nhận được một ngày, mà không chỉ định múi giờ, kết quả sẽ được chuyển đổi thành múi giờ của trình duyệt. Nói cách khác: nếu ngày / giờ được tạo theo GMT (Giờ chuẩn Greenwich), ngày / giờ sẽ được chuyển đổi thành CDT (Giờ ban ngày miền Trung Hoa Kỳ) nếu người dùng duyệt từ trung tâm Hoa Kỳ.

4. Định dạng ngày ngắn trong JavaScript

Ngày tháng ngắn được viết với cú pháp M/DD/YYYY hoặc YYYY/MM/DD hoặc MM-DD-YYYY hoặc YYYY-MM-DD .

Ví dụ:

let d_1 = new Date("12-21-2021");
let d_2 = new Date("12/21/2021");
let d_3 = new Date("2021/12/21");
let d_4 = new Date("2021-12-21");
document.write(d_1);
document.write(d_2);
document.write(d_3);
document.write(d_4);

Chú ý

Trong hầu hết các trình duyệt, ngày tháng ISO với tháng hoặc ngày không có số 0 ở đầu (các tháng nhỏ hơn 10) sẽ được hiểu là short dates:

var d = new Date("2021-3-25");

Hành vi của “YYYY / MM / DD” “DD-MM-YYYY” là không xác định. Một số trình duyệt sẽ cố gắng đoán định dạng. Một số sẽ trả lại NaN.

5. Định dạng ngày dài trong JavaScript

Ngày dài thường được viết bằng cú pháp “MMM DD YYYY”. Định dạng này tức là bạn truyền vào với tên của tháng là ba chữ cái đầu tiên ghi bằng tiếng Anh, lúc này bạn có thể đặt vị trí của nó thế nào cũng được vì đối tượng Date tự nhận diện và chuyển đổi.

Ví dụ:

let d_1 = new Date("Oct 21 2021");
let d_2 = new Date("2021 Oct 21");
let d_3 = new Date("21 2021 Oct");
document.write(d_1);
document.write(d_2);
document.write(d_3);

Nói dễ hiểu nhất là tháng và ngày có thể theo thứ tự bất kỳ. Tháng có thể được viết đầy đủ (tháng Giêng), hoặc viết tắt (tháng Một). Dấu phẩy bị bỏ qua. Tên không phân biệt chữ hoa chữ thường.

6. Định dạng ngày đầy đủ trong JavaScript

Js chấp nhận chuỗi ngày tháng trong “định dạng JavaScript đầy đủ”. Dạng này bạn phải truyền đầy đủ (Ngày Tháng Năm Giờ-Phút-Giây-Timezone).

Ví dụ:

var d = new Date("Wed Mar 21 2021 09:56:24 GMT+0700 (Giờ Đông Dương)");

Js sẽ bỏ qua lỗi trong cả tên ngày và trong ngoặc thời gian.

Lưu ý

Với định dạng đầy đủ ta sẽ có:

  • Day là ngày trong tuần (hay còn gọi là thứ) được viết theo tên tiếng anh (có thể viết đầy đủ như Wednesday hoặc viết tắt từ ba ký tự đầu tiên của nó như Wed)
  • Month là tháng được viết theo tên tiếng anh (có thể viết đầy đủ như January hoặc viết tắt từ ba ký tự đầu tiên của nó như Jan)