Phương thức toLocaleDateString() trả về chuỗi biểu diễn phần ngày (không bao gồm giờ) của đối tượng Date theo định dạng địa phương (locale) của người dùng.
Cú pháp
dateObj.toLocaleDateString([locales[, options]])
locales: Tùy chọn, BCP 47 language tagoptions: Tùy chọn, object cấu hình (chỉ các option liên quan đến date)- Trả về: Chuỗi ngày theo locale
Ví dụ cơ bản
const date = new Date('1989-09-26T12:04:25.096');
console.log(date.toLocaleDateString()); // "9/26/1989" (locale mặc định)
console.log(date.toLocaleDateString('vi-VN')); // "26/09/1989" (VN: DD/MM/YYYY)
console.log(date.toLocaleDateString('en-US')); // "9/26/1989" (US: MM/DD/YYYY)
console.log(date.toLocaleDateString('en-GB')); // "26/09/1989" (UK: DD/MM/YYYY)
console.log(date.toLocaleDateString('ja-JP')); // "1989/9/26" (Japan: YYYY/M/D)
Tùy chọn options cho date
const date = new Date('1989-09-26T12:04:25.096');
const options = {
weekday: 'long', // "Thứ Ba"
year: 'numeric', // "1989"
month: 'long', // "Tháng Chín"
day: 'numeric', // "26"
timeZone: 'UTC' // Hiển thị ngày theo UTC
};
console.log(date.toLocaleDateString('vi-VN', options));
// "Thứ Ba, 26 Tháng Chín 1989"
console.log(date.toLocaleDateString('en-US', options));
// "Tuesday, September 26, 1989"
Ngày hiện tại
const now = new Date();
console.log(now.toLocaleDateString('vi-VN')); // "25/10/2018" (ví dụ)
So sánh các phương thức date-only
| Method | Output (vi-VN) | Timezone | Customizable |
|---|---|---|---|
toLocaleDateString() | "26/09/1989" | Local | Có (options) |
toDateString() | "Thứ 3, 26 Thg 9 1989" | Local | Không |
toISOString().split('T')[0] | "1989-09-26" | UTC | Không |
toLocaleDateString(undefined, {timeZone:'UTC'}) | "26/09/1989" | UTC | Có |
Ứng dụng
- Hiển thị ngày sinh, ngày đăng ký, ngày hết hạn
- Báo cáo, filter theo ngày (chỉ cần date, không cần time)
- Form input type="date" value formatting
- i18n: tự động DD/MM/YYYY vs MM/DD/YYYY vs YYYY/MM/DD
Lưu ý
- Chỉ trả về phần ngày, bỏ qua giờ/phút/giây
- options không hỗ trợ hour/minute/second (sẽ bị bỏ qua)
- Hiệu năng tốt hơn
toLocaleString()khi chỉ cần ngày - Kết quả phụ thuộc locale data của hệ thống
- Cặp đôi với
toLocaleTimeString()cho datetime tách biệt