重新格式化date正则expression式

我正在编写一个应用程序(Node.js是精确的),我现在有一个datestring格式化在mongoose数据库中:

2013-11-19T00:10:00-08:00

我想通过查找在给定的一天中发生的所有结果来在数据库上运行查询

它需要在所有的date工作,而不仅仅是上面的例子

编辑: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/


也许有一些我失踪,因为你正在使用mongoose……但:

 var dateTimeStr = '2013-11-19T00:10:00-08:00'; var dateTime = new Date(dateTimeStr); var formatted = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate(); 

您拥有的date时间值是由Date对象内部可parsing的标准ISO 8601。

我也不知道为什么你有一个date时间标记存储(或被提取)为一个string。 MongoDB有能力存储Date对象。

请参阅我在哪里可以find有关在JavaScript中格式化date的文档? 有关格式化date的更多详细信息。

如果您愿意,可以使用Windows内部命令与delimstokens

 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]);