2013-07-11 27 views
6

Tôi tự hỏi nếu điều này là bình thường hoặc nếu tôi thiếu một số thứ trong quá trình thiết lập lược đồ hoặc truy vấn:Mongoose chuyển đổi ngày UTC được lưu trữ thành giờ địa phương?

Ứng dụng của tôi và mongoose, đang lưu trữ đúng ngày là UTC trong mongodb. Điều này được xác nhận bằng cách xem tài liệu qua vỏ mongo. Khi tôi lấy các tài liệu từ mongodb qua mongoose ngày giờ là giờ địa phương.

Mongo shell: sản lượng http://cl.ly/image/2m3P212o0i2x

console.log của kết quả truy vấn: http://cl.ly/image/3W2q3b1R0F3q

Có cách nào để có cầy mangut giữ ngày như UTC khi truy vấn?

Trả lời

6

Mongoose và node.js không thực hiện bất kỳ điều gì cho ngày của bạn, đơn giản là loại JavaScript Date tạo ra giờ địa phương chuỗi khi bạn gọi toString() trên đó mặc dù nó thực sự chứa thời gian trong UTC.

Gọi rõ ràng toUTCString() trên đối tượng Date của bạn nếu bạn muốn có chuỗi thời gian UTC.

+1

Gotcha. Sau khi đăng nhập kết quả truy vấn một vài cách khác nhau tôi phát hiện ra rằng nó đã được console.log đó đã được hiển thị ngày tháng trong thời gian địa phương, therefor nó được gọi toString(). Tốt để biết đi về phía trước ... Cảm ơn bạn đã trả lời. –

1

Dấu thời gian được lưu trữ theo múi giờ tạm thời, dưới dạng dấu thời gian unix. Dấu thời gian này sẽ hoạt động trên các múi giờ và nút diễn giải nó bằng múi giờ hiện tại của bạn. Bạn có thể truy xuất giá trị UTC từ đối tượng ngày bằng cách sử dụng các phương thức getUTC * chẳng hạn như get getCHCHours()

+1

Cảm ơn bạn đã phản hồi, tôi hiểu rằng tôi có thể chuyển đổi UTC và làm việc với nó từ đó. Tôi chỉ có vẻ hơi lạ một chút sooose và/hoặc node tự động đưa nó vào giờ địa phương. Có lẽ câu hỏi hay hơn là: tôi có thể nói rõ ràng với nút để sử dụng UTC ... tương tự như hàm date_default_timezone_set trong PHP hoặc các ngôn ngữ khác không? –

+1

@DM Bạn đang đưa mọi thứ vào mongoose trong UTC, hoặc trong thời gian địa phương của bạn? Bạn có thể thay đổi múi giờ của nút bằng cách sử dụng process.env.TZ, nhưng nó không được khuyến khích. https://github.com/joyent/node/issues/3286 – WouterH

Các vấn đề liên quan