我的目标是阻止在24小时内多次发送电子邮件。我有一个架构:
var requestSchema = new mongoose.Schema({
email: String,
lastSent: Date
});
在我的Express路线中,我正在测试lastSent
变量是否超过一天......
var lastSent = new Date(existingRequest.lastSent);
var nextDate = new Date() - 1;
if (lastSent > nextDate) {
if (constants.dev){ console.log('Signup request too soon'); }
} else {
// Process request
}
...但是我似乎无法抓住约会。将日期记录到Express控制台会显示:
Last Sent: Tue Dec 16 2014 10:12:54 GMT-0500 (Eastern Standard Time)
Threshold: 1418746385786
日期格式是否有可能不匹配?
答案 0 :(得分:0)
The conversion of the ISODate coming from MongoDB is not necessary
您需要以毫秒为单位减去,因此您需要减去24*60*60*1000
以减去一整天。
减法将返回一个时间戳,因此您将无法使用通常的Date functions - 您需要从时间戳构建一个新日期。
尝试:
var nextDate = new Date(new Date() - 24*60*60*1000);
if(existingRequest.lastSent > nextDate) {...}