如何比较sails.js模型中的日期时间?这就是我所做的,但没有运气。
var _date = moment().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z';
Game.find({
where:{
active: true,
start: {
'>=' : _date
}
},
limit: 1,
sort: 'start asc'
}, function(err, game) {
console.log('ERROR: ' + err);
console.log('Game OBJ' + game.toString());
});
答案 0 :(得分:4)
将datetime
类型转换为Waterline中的实际Javascript日期(Sails ORM)。因此需要将其与日期对象进行比较,而不是字符串。您可以完全保持代码的原样,但将第一行更改为:
var _date = new Date(moment().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z');
然后您的查询应该找到将来开始的所有Game
。
当然,由于您的代码只是返回当前日期,因此您根本不需要moment
:
var _date = new Date();
也会起作用。
答案 1 :(得分:1)
var _date = moment().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z';
您需要使用以下行
将上述字符串变量转换为日期变量var tempDate = new Date(_date);
现在使用$ gte而不是'> ='
Game.find({
where:{
active: true,
start: {
$gte : tempDate
}
},
limit: 1,
sort: 'start asc'
}, function(err, game) {
console.log('ERROR: ' + err);
console.log('Game OBJ' + game.toString());
});
您还可以使用$ gt,$ lt,$ lte。