gpt4 book ai didi

node.js - 比较日期以检索数据

转载 作者:可可西里 更新时间:2023-11-01 09:53:14 28 4
gpt4 key购买 nike

我在 mongodb 中有这样的数据

{ "_id" : ObjectId("4f0ee7310b09f7a254000001"), "createdAt" : ISODate("2012-01-12T23:58:28Z") }
{ "_id" : ObjectId("4f0ee7350b09f7a254000002"), "createdAt" : ISODate("2012-01-12T23:58:28Z") }
{ "_id" : ObjectId("4f0ee855e63cecb654000001"), "createdAt" : ISODate("2012-01-13T00:03:59Z") }
{ "_id" : ObjectId("4f0ee859e63cecb654000002"), "createdAt" : ISODate("2012-01-13T00:04:08Z") }
{ "_id" : ObjectId("4f0ee97c212d70bc54000001"), "createdAt" : ISODate("2012-01-13T00:08:54Z") }
{ "_id" : ObjectId("4f0ee99f212d70bc54000002"), "createdAt" : ISODate("2012-01-13T00:09:27Z") }

我只想显示基于日期的记录。检查我的代码,它没有返回任何内容

//dateStr = '120112' or '120113'
var year = '20' + dateStr.substring(0,2);
var month = dateStr.substring(2,4);
var day = dateStr.substring(4);
dateStr = new Date(year,month,day,0,0,0);

var nextDate = new Date(year,month,day,23,59,59);

GPSData.find({"createdAt" : { $gte : dateStr, $lte: nextDate }}, function(err, data) {
if(err)
console.log(err);

res.writeHead(200, {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
});
var body = JSON.stringify(data);
res.end(body); //no output here just []
});

但是在使用此命令的 mongo shell 上,我得到了日期“120112”的结果

db.gpsdatas.find({"createdAt" : {new ISODate("2012-01-12T00:00:00Z"), $lte: new ISODate("2012-01-12T23:59:59Z") }});

最佳答案

您的问题是您对 Date 类的理解。我假设您正在尝试为 1 月 12 日创建一个日期对象,但 new Date(2012, 1, 12) 实际上是 2 月 11 日或 12 日,具体取决于本地时区。因此,您的代码不会执行您在 shell 中执行的查询。

在此处阅读详细信息 http://www.w3schools.com/jsref/jsref_obj_date.asp

关于node.js - 比较日期以检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851397/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com