Mongoose 更新条件 PDT 日期/型号 ISO 日期
Posted
技术标签:
【中文标题】Mongoose 更新条件 PDT 日期/型号 ISO 日期【英文标题】:Mongoose Update Condition PDT Date/ Model ISO Date 【发布时间】:2015-07-10 10:30:34 【问题描述】:嗨,我的 Schmema 有一个带有 ISO 日期的字段:
ISODate("2015-04-30T14:47:46.501Z")
Paypal 在成功付款时返回该格式的日期对象:
Time/Date stamp generated by PayPal, in the following format: HH:MM:SS Mmm DD, YYYY PDT
Length: 28 characters
现在我想更新具有 payers_email_address 和时间戳的数据库条目,该时间戳与 paypals 时间戳的最大差异为 15 分钟。
这些是我认为执行此操作所必需的步骤:
1) 在这一步我不确定。直截了当的方法是将贝宝日期字符串化,然后将其拆分并重新排列。但我想有更好的方法吗?
问题:如何正确地将 PDT 日期转换为 UTC 日期。
2) 创建一个新的 UTC 日期: var dt = new Date('2010-06-09T15:20:00Z');
3) 将日期加 15 分钟: dt.setMinutes (dt.getMinutes() + 15);
4) 两个日期之间的查询 MongoDB/Mongoose querying at a specific date?
整体(不适用于 2015 年 4 月 30 日的日期)
MyModel.find(date: "$gte": new Date("10:00:46 04 29, 2015").toUTCString(), "$lt": new Date("14:00:46 05 01, 2015").toUTCString())
编辑:
我想如果我让查询工作正常,我可以将其与 PDT 一起使用:
new Date("20:15:10 05 10, 1985 PDT").toUTCString()
我发布了我的步骤,因为也许有转换日期的猫鼬功能,我不必做 1-3。
【问题讨论】:
【参考方案1】:这在我的 mongoShell 中有效,如果它在程序中有效,我稍后会报告:
MyModel.find(date: "$gte": new Date("10:00:46 04 29, 2015 PDT"), "$lt": new Date("14:00:46 05 01, 2015 PDT"))
【讨论】:
以上是关于Mongoose 更新条件 PDT 日期/型号 ISO 日期的主要内容,如果未能解决你的问题,请参考以下文章