tôi có mã này trong một trang HTML:Khác biệt trong JSON.stringify của các giá trị ngày trong các trình duyệt khác nhau
alert(JSON.stringify(new Date()));
tôi bao gồm json2.js (2009-09-29 phiên bản) mới nhất trong trang web của tôi để hỗ trợ các trình duyệt cũ hơn không có JSON.stringify(). Tôi cũng có jquery-1.3.2.js. Tôi tin rằng trong các trình duyệt mới hơn có hỗ trợ JSON nguyên gốc, nó chỉ chuyển sang tính năng JSON gốc.
Dưới đây là kết quả tôi nhận được trong các trình duyệt khác nhau:
IE 8 on Windows XP: "2010-02-07T21:39:32Z"
Chrome 4.0 on Windows XP: "2010-02-07T21:39:59Z"
Firefox 3.0 of Windows XP: "2010-02-07T21:40:41Z"
Chrome 4.0 on Ubuntu linux: "2010-02-07T21:41:49Z"
Firefox 3.0 on Ubuntu linux: "2010-02-07T21:42:44Z"
Chrome 4.0 on Mac OSX: "2010-02-07T21:43:56Z"
Safari on Mac OSX: "2010-02-07T21:45:21Z"
Firefox 3.5 on Mac OSX: "2010-02-07T21:44:10.101Z"
Thông báo người cuối cùng? Nó chứa mili giây, và không ai trong số những người khác làm. Tôi không có FF3.5 cài đặt trên bất kỳ hệ thống khác, nhưng tôi giả sử họ sẽ có kết quả tương tự.
Có điều gì tôi có thể làm để làm cho tất cả các ngày trên tất cả các nền tảng đều giống nhau không? Dịch vụ REST phụ trợ của tôi có thể được cấu hình với một chuỗi định dạng để deserialize ngày JSON, nhưng nó không thể hỗ trợ nhiều định dạng, chỉ một.
FWIW, tôi chỉ thử nghiệm FF 3.6 trên Win7 và nó cũng mang đến cho mili giây. –
Bài đăng có liên quan trên danh sách gửi thư của Mozilla: https://mail.mozilla.org/pipermail/es5-discuss/2008-October/001989.html –
Chà, họ đã triển khai nó theo cách này vài năm trước ?! Tôi ngạc nhiên điều này đã không gây ra nhiều vấn đề hơn. Tôi đánh giá cao việc cố gắng tuân thủ các tiêu chuẩn, nhưng nếu mọi thứ khác đang làm theo cách khác, ít nhất là đưa ra một tùy chọn cấu hình để dự phòng. – Tauren