Express 如何确定特快/猫鼬日期是否为>;24小时?

Express 如何确定特快/猫鼬日期是否为>;24小时?,express,mongoose,mean-stack,Express,Mongoose,Mean Stack,我的目标是防止电子邮件在24小时内发送不止一次。我有一个模式: var requestSchema = new mongoose.Schema({ email: String, lastSent: Date }); 在我的快速路线中,我正在测试lastssent变量是否在一天前 var lastSent = new Date(existingRequest.lastSent); var nextDate = new Date() - 1; if (lastSent >

我的目标是防止电子邮件在24小时内发送不止一次。我有一个模式:

var requestSchema = new mongoose.Schema({
    email: String,
    lastSent: Date
});
在我的快速路线中,我正在测试
lastssent
变量是否在一天前

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
是否有可能日期格式不匹配

  • 您需要以毫秒为单位进行减法,因此您需要减去
    24*60*60*1000
    来减去一整天

  • 减法将返回一个时间戳,因此您将无法使用通常的时间戳-您将需要根据时间戳构造一个新的日期

  • 尝试:


    完美的谢谢双重皈依是诀窍。我最初是开始减去毫秒的,所以这是一个简单的替换。转换是导致我大脑受伤的部分
    var nextDate = new Date(new Date() - 24*60*60*1000);
    if(existingRequest.lastSent > nextDate) {...}