ngày JavaScript có thể là một điều buồn cười. Tùy thuộc vào cách bạn thực sự cung cấp các đối số để khởi tạo chúng, bạn sẽ nhận được các kết quả khác nhau.
Ví dụ, một số có thể đề nghị bạn thử này:
var myDate = new Date(2014, 11, 12, 14, 12)
Mà dường như tốt, nhưng có một vấn đề.
Bạn thấy rằng một số hình thức khởi tạo đối tượng Date
trong JavaScript sử dụng múi giờ "cục bộ" khi tạo ngày. Những người khác sử dụng múi giờ UTC hoặc "phổ quát" cho một tiêu chuẩn đã đặt. Đây cũng là "chuẩn" mà MongoDB mong đợi, và thường được chấp nhận là thực hành tốt nhất cho ứng dụng của bạn để lưu trữ các ngày theo cách này. Thực hiện bất kỳ chuyển đổi nào trong mã của bạn, cách xa kho dữ liệu. Điều này đảm bảo bạn có thể xử lý nhiều ngôn ngữ mà không gặp vấn đề gì.
Vì vậy, những gì bạn nên làm là thế này:
var date = new Date("2014-12-11T14:12:00Z")
Ngoài ra còn có một "trợ giúp" trong vỏ MongoDB để xử lý này khá nhiều trong cùng một cách, nhưng cụ thể hơn đối với cú pháp:
var date = new ISODate("2014-12-11T14:12:00Z")
Điều này tạo ra giá trị ngày UTC lưu trữ chính xác như mong đợi. Bạn nên luôn luôn đối phó với UTC khi lưu trữ ngày trong MongoDB.
Nguồn
2014-12-15 09:23:29
Lỗi gì? [Chỉnh sửa câu hỏi của bạn] (https://stackoverflow.com/posts/27480134/edit) và thêm thông báo lỗi. –
Câu hỏi này nêu rõ trong trình bao, và tất cả các câu trả lời đã cho là dành cho javascript. Vui lòng đăng câu trả lời để chèn từ bảng điều khiển mongo. –