如何比较Parse Cloud中的2个Date字段? [英] How to compare 2 Date fields in Parse Cloud?
问题描述
在如下所示的云函数中,我在比较日期时遇到问题:
In a cloud function like the following, I am having problems comparing dates:
Parse.Cloud.define("myCloudFunction", function(request, response)
{
var query = new Parse.Query("MyClass");
query.find
({
success: function(resultList) {
var today = new Date();
for (var i = 0; i < resultList.length; ++i) {
if (resultList[i].get("dateFieldOne")>resultList[i].get("dateFieldTwo")) {
// Do something!!
} else {
// Do some other thing!!
if (resultList[i].get("dateFieldOne")>today) doOneMoreThing();
}
}
response.success(resultList);
},
error: function() {
response.error("Things have gone wrong.");
}
});
});
行:
if (resultList[i].get("dateFieldOne")>resultList[i].get("dateFieldTwo"))
if (resultList[i].get("dateFieldOne")>today) doOneMoreThing();
不起作用.
在这种情况下,用来比较类型为Date的两个字段dateFieldOne和dateFieldTwo的语法是什么?
What is the syntax I am supposed to use in this context, to compare the two fields dateFieldOne and dateFieldTwo of type Date?
推荐答案
时刻库是您的朋友:
var moment = require('moment');
Parse.Cloud.define("myCloudFunction", function(request, response) {
var query = new Parse.Query("MyClass");
query.find
({
success: function(resultList) {
var today = new moment();
for (var i = 0; i < resultList.length; ++i) {
var dateFieldOne = moment(resultList[i].get("datefieldOne"));
var dateFieldTwo = moment(resultList[i].get("dateFieldTwo"));
if (dateFieldOne.isAfter(dateFieldTwo)) {
// Do something!!
} else {
// Do some other thing!!
if (dateFieldOne.isAfter(today)) doOneMoreThing();
}
}
// ...etc...
使用Moment,您还可以查询所需的粒度级别,例如:
With Moment you can also query for the level of granularity you need, e.g.:
var today = moment();
var tomorrow = moment().add(1, 'days');
// assuming today is 3pm on 2014-07-09
moment("2014-07-09T20:00:00").isBefore(today); // false (8pm is not before 3pm)
moment("2014-07-09T10:00:00").isBefore(today); // true (10am is before 3pm)
moment("2014-07-09T10:00:00").isBefore(today, 'day'); // false (ignoring time, they are equal)
moment("2014-07-09T10:00:00").isBefore(tomorrow, 'day'); // true
moment("2014-07-09T20:00:00").isBefore(tomorrow, 'day'); // true
更新:请注意,isBefore()
和isAfter()
仅在版本2.0
之后可用,并且Parse.com使用1.7
.如果要访问这些方法,可以下载 moment.js 并将其放在
UPDATE: Note that isBefore()
and isAfter()
are only available after version 2.0
and Parse.com is using 1.7
. If you want to have access to these methods, you can download moment.js and place it in your /cloud
directory.
这篇关于如何比较Parse Cloud中的2个Date字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!