ste*_*dev 6 javascript mongodb
我想找到自午夜以来创建的所有文档,无论用户的时区如何.如果太平洋时间的用户,它应该显示自太平洋午夜以来的所有文件.与东部时间相同.
我在东部时间这对我有用:
var d = new Date();
var midnight = d.setHours(0,0,0,0); // last midnight
var count = Items.find({
username: Meteor.user().username,
createdAt: { $gt: midnight }
}).count();
Run Code Online (Sandbox Code Playgroud)
但是我的客户是CST,但对他不起作用.它改为显示自中午前一天晚上10点或晚上11点以来创建的文档.所以这对我来说似乎是一个时区问题.
假设这只是客户端问题(所有时间都以 UTC 形式存储在服务器上),那么您可以通过执行以下操作来获取用户当前时区午夜的 UTC 调整时间:
var now = new Date();
var midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var midnight_utc = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
Run Code Online (Sandbox Code Playgroud)
请参阅此小提琴: https: //jsfiddle.net/Lbk1vo0j/1/ 例如,对于我当前的时区(东部),我得到以下值:现在、午夜和午夜_utc(当使用 toLocaleString() 打印日期对象时)方法):
3/30/2015, 3:06:39 PM
3/30/2015, 12:00:00 AM
3/29/2015, 8:00:00 PM
Run Code Online (Sandbox Code Playgroud)