我正在用JavaScript编写应用程序(准确地说是Node.js),我目前在mongoose数据库中有一个这样格式化的日期字符串:
2013-11-19T00:10:00-08:00
我想通过查找在指定日期发生的所有结果来对数据库运行查询
它需要适用于所有日期,而不仅仅是上面的例子
答案 0 :(得分:1)
编辑:OP改变了问题。
var start = new Date(2013,11,19);
var end = new Date (2013,11,20);
db.collection.find({dateTimeField: {$gte: start, $lt: end}});
感谢gilly3对OP突出显示的评论:http://cookbook.mongodb.org/patterns/date_range/
因为你使用猫鼬,所以我可能会遗漏一些东西......但是:
var dateTimeStr = '2013-11-19T00:10:00-08:00';
var dateTime = new Date(dateTimeStr);
var formatted = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate();
您拥有的日期时间值是标准ISO 8601,可由Date对象在内部进行分析。
我也不确定为什么你有一个日期时间戳作为字符串存储(或被提取)。 MongoDB能够存储Date对象。
有关格式化日期的详细信息,请参阅Where can I find documentation on formatting a date in JavaScript?。
答案 1 :(得分:0)
如果您愿意,可以将Windows内部命令for
与delims
和tokens
一起使用。
答案 2 :(得分:0)
var dateTimeString = '2013-11-19T00:10:00-08:00';
// substring + indexOf solution
console.log("1)", dateTimeString.substring(0, dateTimeString.indexOf("T")));
// regex.match solution
console.log("2)", dateTimeString.match(/^\d{4}-\d{1,2}-\d{1,2}/)[0]);