在像下面这样的云函数中,我在比较日期时遇到了问题:
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?
发布于 2014-07-08 07:18:40
矩库是你在这里的朋友:
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...
稍后,您还可以查询所需的粒度级别,例如:
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并将其放在您的/cloud
目录中。
发布于 2016-04-13 13:52:55
对于此代码
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();
}
}
首先将其转换为unix时间戳,然后直接比较它们。
for (var i = 0; i < resultList.length; ++i) {
if (new Date(resultList[i].get(“dateFieldOne”)).getTime()>new Date(resultList[i].get(“dateFieldTwo”)).getTime()) {
// Do something!!
} else {
// Do some other thing!!
if (new Date(resultList[i].get(“dateFieldOne”)).getTime()>today) doOneMoreThing();
}
}
https://stackoverflow.com/questions/24630244
复制相似问题