Parse platform 如何比较解析云中的2个日期字段?
在类似以下的云函数中,我在比较日期时遇到问题:Parse platform 如何比较解析云中的2个日期字段?,parse-platform,Parse Platform,在类似以下的云函数中,我在比较日期时遇到问题: 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
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.”);
}
});
});
你不工作了
在本文中,我应该使用什么语法来比较Date类型的两个字段dateFieldOne和dateFieldTwo?这里是您的朋友:
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...
更新:请注意,isBefore()
和isAfter()
仅在版本2.0
和Parse.com使用1.7
后可用。如果您想访问这些方法,可以下载并将其放在您的/cloud
目录中。获取此代码
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();
}
}
for(变量i=0;iresultList[i].get(“dateFieldTwo”)){
//做点什么!!
}否则{
//做点别的事!!
如果(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();
}
}
for(变量i=0;i新日期(resultList[i].get(“dateFieldTwo”).getTime()){
//做点什么!!
}否则{
//做点别的事!!
if(新日期(resultList[i].get(“dateFieldOne”).getTime()>today)doOneMoreThing();
}
}
这听起来很有趣,但我仍然需要弄清楚如何在解析中使用它。即使我包括:var moment=require('moment');在我的代码中。我确实在工作,但我得到了一个错误:错误:TypeError:Object Tue Jul 08 2014 15:56:01 GMT+0000(UTC)没有方法“isAfter”,因为我从未使用过云模块,我很可能做错了什么。这是:var itemDate=矩(resultList[I].get(“createdAt”);应该有效吗?我在这一点上的实验没有成功。很明显我遗漏了一些基本的东西。也许用你更新的代码来更新你的问题?itemDate
行应该可以工作,并为您提供一个时刻
实例,您可以调用isAfter()等方法。使用大量的console.log()
行来查看在调试这样的事情时代码中发生了什么。
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();
}
}
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();
}
}