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!