Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于客户端日期查询mongodb日期_Javascript_Node.js_Mongodb_Date - Fatal编程技术网

Javascript 基于客户端日期查询mongodb日期

Javascript 基于客户端日期查询mongodb日期,javascript,node.js,mongodb,date,Javascript,Node.js,Mongodb,Date,Mongodb以UTC格式存储日期对象。我需要根据“今天”查询客户输入的任务。今天,用户的角度不同,他们可能在东部时区或太平洋地区。以下是我遇到的问题: 记录输入为“2017-05-10 15:15:11.283Z”。当我晚上晚些时候查询服务器时,服务器日期已经是2017-05-11,但是从客户的角度来看,它仍然是2015-05-10 我需要找到客户输入的所有任务“今天” 我试过这个: let start=new Date(); 启动设定小时数(0,0,0,0); 让结束=新日期(); 完二〇

Mongodb以UTC格式存储日期对象。我需要根据“今天”查询客户输入的任务。今天,用户的角度不同,他们可能在东部时区或太平洋地区。以下是我遇到的问题:

记录输入为“2017-05-10 15:15:11.283Z”。当我晚上晚些时候查询服务器时,服务器日期已经是2017-05-11,但是从客户的角度来看,它仍然是2015-05-10

我需要找到客户输入的所有任务“今天”

我试过这个:

let start=new Date();
启动设定小时数(0,0,0,0);
让结束=新日期();

完二〇〇四年十一月二十三日,五九九九,十九日(星期三)上午十一时三十分如果我理解正确,日期存储在带有时区偏移量+00:00的数据库字符串中。您希望在客户机的时区(不管是什么)中获取“今天”开始和结束的日期对象

以下假设(可能错误)req.params中的值为UTC,但在执行处理的主机系统上被视为本地值:

let clientDate =  req.params.month +'/'+ req.params.date +'/'+ req.params.year;  //'5/10/2017'
console.log('clientDate ' + clientDate);

let start = new Date(clientDate);
这就是为什么你的日期被时区偏移了,你必须把它们移回去

您不应该创建一个字符串,然后将其留给最新的构造函数来解析。将值直接提供给日期构造函数

接下来,您似乎希望为UTC日期所在的本地日的开始和结束创建一个日期,因此应执行以下操作:

var-req={
参数:{
年份:2017年,
月份:'5',
日期:“10”
}
};
//无解析,将日期值视为UTC
var clientDate=新日期(Date.UTC(请求参数年,请求参数月-1,请求参数日期));
//复印日期
var start=新日期(clientDate);
//设置为本地开始一天
启动设定小时数(0,0,0,0);
//复制开始到结束并添加24小时
var结束=新日期(开始);
//调整UTC小时数可避免日光节约问题
//也可以在日期上加1
end.setUTCHours(end.getUTCHours()+24)
console.log('Client date:'+clientDate.toISOString()+
'\n开始日期:'+start.toString()+

'\n日期:'+end.toString())您应该传递客户端时区,并将其考虑到查询是否转换为UTC??