Trong JS cung cấp sẵn cho chúng ta một đối tượng là Intl để so sánh chuỗi theo ngôn ngữ, định dạng số và ngày tháng.

Ở đây mình chỉ nói đến Format ngày tháng và mình lấy thời gian hiện tại. Mọi người có thể F12 lên để thử cho nhanh.

Const now = new Date () ;

Mã:

let intl = new Intl.DateTimeFormat("vi-VN", {

dateStyle: "full"

});

const date = intl.format(now);

console.log(date);

Đầu tiên là 'dateStyle', định dạng cơ bản.

Mã:

dateStyle?: "full" | "long" | "medium" | "short" | undefined;

"full": Thứ Năm, 12 tháng 1, 2023

"long": 12 tháng 1, 2023

"medium": 12 thg 1, 2023

"short": 12/01/2023

Tiếp theo là về chi tiết cho từng thuộc tính về: ngày trong tuần, ngày, tháng, năm, trước(sau công nguyên), giờ, phút, giây.

Mã:

const now = new Date();

let intl = new Intl.DateTimeFormat("vi-VN", {

weekday: "narrow",

hour: "2-digit",

minute: "2-digit",

second: "2-digit",

day: "2-digit",

month: "2-digit",

year: "numeric",

era: "short",

});

const date = intl.format(now);

console.log(date);

Hầu hết cá thuộc tính đều có 2 giá trị truyền vào là: "Numeric"

"2-digit" và mình thấy là hình như nó chả khác gì nhau chỉ là "numeric" thì là "1" còn "2-digit" thì là "01", và không truyền vào thì không hiển thị.

Các thuộc tính khác biệt:

Mã:

Weekday? : "Long" |"Short"|"Narrow" : "Thứ Năm"|"Th 5"|"T5"

Mã:

Month? : "Numeric"|"2-digit"|"Long"|"Short"|"Narrow" : "1"|"01"|"Tháng 1"|"Thg 1"|"1"

Mã:

Era? : "Long"|"Short"|"Narrow" : "Sau Công Nguyên"|"Sau CN"|"Sau CN"

Ngoài ra còn có

Mã:

Hour12? : "True"|"False"

Là đáng chú ý, nó ở định dạng giờ là 24h hay 12h thôi.

Chúc các bạn thành công!