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();
              }
            }