Phương thức Date toJSON() trong JavaScript
Bùi Tấn Lực
- 955
- 06/09/2025
Chức năng của Phương thức Date toJSON() trong JavaScript
Phương thức Date toJSON() trong JavaScript dùng để lấy chuỗi thời gian ISO từ đối tượng Date và so sánh các chuỗi đó với nhau, chuỗi ISO-8601 có định dạng YYYY-MM-DDTHH:mm:ss.sssZ và lấy múi giờ quốc tế, nó hoạt động như phương thức toISOString().
Cú pháp của Phương thức Date toJSON() trong JavaScript
doituongdate.toJSON();
doituongdate: Là một biến trả về từ đối tượng new Date();
Code Phương thức Date toJSON() trong JavaScript
<script>
// Lấy chuỗi ISO từ đối tượng Date
document.write("<b>// Lấy chuỗi ISO từ đối tượng Date</b><br>");
var thoigianmot = new Date("September 02, 2025 09:25:30"); // Ngày 2/9/2025 9h 25 phút 30 giây
var chuotisomot = thoigianmot.toJSON(); // Lấy chuỗi ISO từ đối tượng Date
document.write("Lấy chuỗi ISO từ đối tượng Date: "+chuotisomot+"<br>"); // Kết quả: 2025-09-02T02:25:30.000Z
// Lấy chuỗi ISO từ đối tượng Date
document.write("<b>// Lấy chuỗi ISO từ đối tượng Date</b><br>");
var thoigianhai = new Date("September 03, 2025 09:25:30"); // Ngày 3/9/2025 9h 25 phút 30 giây
var chuotisohai = thoigianhai.toJSON(); // Lấy chuỗi ISO từ đối tượng Date
document.write("Lấy chuỗi ISO từ đối tượng Date: "+chuotisohai+"<br>"); // Kết quả: 2025-09-03T02:25:30.000Z
// So sánh 2 chuỗi ISO
document.write("<b>// So sánh 2 chuỗi ISO</b><br>");
if(thoigianhai>thoigianmot){
document.write("Ngày 3/9/2025 đứng sau ngày 2/9/2025");
}
</script>
Kết quả:
// Lấy chuỗi ISO từ đối tượng Date
Lấy chuỗi ISO từ đối tượng Date: 2025-09-02T02:25:30.000Z
// Lấy chuỗi ISO từ đối tượng Date
Lấy chuỗi ISO từ đối tượng Date: 2025-09-03T02:25:30.000Z
// So sánh 2 chuỗi ISO
Ngày 3/9/2025 đứng sau ngày 2/9/2025
Những lưu ý khi sử dụng Date.toJSON() trong JavaScript
Date.toJSON() khá thuận tiện khi cần chuyển một đối tượng Date thành chuỗi để lưu trữ hoặc trao đổi dữ liệu. Tuy nhiên, kết quả của phương thức này chịu ảnh hưởng bởi cách JavaScript xử lý thời gian và trạng thái của đối tượng ngày. Hiểu rõ các trường hợp đặc biệt sẽ giúp tránh sai lệch dữ liệu khi làm việc với API hoặc cơ sở dữ liệu.
Date.toJSON() xử lý múi giờ như thế nào?
Date.toJSON() trả về thời gian theo chuẩn UTC, không giữ nguyên cách hiển thị theo múi giờ địa phương. Vì vậy, nếu tạo một đối tượng Date theo giờ địa phương, chuỗi nhận được có thể có thời gian khác với giá trị đang nhìn thấy trên giao diện.
Điểm quan trọng là thời điểm thực tế không bị thay đổi. JavaScript chỉ chuyển cách biểu diễn thời gian sang UTC trước khi tạo chuỗi JSON. Chẳng hạn, một thời điểm đang hiển thị theo giờ Việt Nam có thể được biểu diễn bằng một mốc giờ sớm hơn trong chuỗi kết quả vì Việt Nam sử dụng UTC+7.
Do đó, khi nhận dữ liệu từ API hoặc lưu ngày tháng dưới dạng JSON, nên thống nhất quy ước múi giờ giữa các hệ thống. Việc này giúp hạn chế tình trạng cùng một thời điểm nhưng mỗi nơi lại hiển thị thành một giờ khác nhau.
Điều gì xảy ra khi đối tượng Date không hợp lệ?
Không phải mọi đối tượng Date đều chứa một thời điểm hợp lệ. Nếu ngày được tạo từ dữ liệu sai định dạng hoặc giá trị không thể chuyển thành thời gian, đối tượng đó có thể rơi vào trạng thái không hợp lệ.
Khi gọi Date.toJSON() trên một đối tượng Date không hợp lệ, phương thức sẽ trả về null thay vì tạo ra một chuỗi ngày tháng sai. Đây là điểm cần lưu ý khi dữ liệu đầu vào đến từ biểu mẫu, tệp bên ngoài hoặc API khác.
const date = new Date("gia-tri-khong-hop-le");
console.log(date.toJSON()); // null
Vì vậy, nếu kết quả JSON bắt buộc phải chứa ngày tháng, nên kiểm tra tính hợp lệ của dữ liệu trước khi lưu hoặc gửi đi. Không nên mặc định rằng mọi giá trị được truyền vào Date đều tạo ra một thời điểm hợp lệ.
Khi nào nên dùng Date.toJSON() thay vì toISOString()?
Date.toJSON() và toISOString() thường cho cùng một chuỗi thời gian khi làm việc với một đối tượng Date hợp lệ. Tuy nhiên, mục đích sử dụng của chúng có sự khác biệt.
toISOString() phù hợp khi cần chủ động lấy chuỗi thời gian theo chuẩn ISO 8601. Trong khi đó, toJSON() đặc biệt hữu ích trong ngữ cảnh chuyển dữ liệu JavaScript sang JSON, chẳng hạn khi sử dụng JSON.stringify().
const date = new Date();
console.log(date.toISOString());
console.log(date.toJSON());
Với dữ liệu cần gửi qua API hoặc chuyển thành JSON, Date.toJSON() giúp cách biểu diễn ngày tháng phù hợp với quá trình tuần tự hóa dữ liệu. Nếu mục tiêu đơn giản chỉ là lấy chuỗi ISO của một đối tượng Date, toISOString() thường trực tiếp và dễ hiểu hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Date toJSON() trong JavaScript.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *