首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何比较分析云中的两个日期字段?

如何比较分析云中的两个日期字段?
EN

Stack Overflow用户
提问于 2014-07-08 11:07:48
回答 2查看 1.9K关注 0票数 2

在像下面这样的云函数中,我在比较日期时遇到了问题:

代码语言:javascript
运行
复制
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.”);
      }
    });
  });

台词:

代码语言:javascript
运行
复制
if (resultList[i].get(“dateFieldOne”)>resultList[i].get(“dateFieldTwo”))
if (resultList[i].get(“dateFieldOne”)>today) doOneMoreThing();

不起作用。

在这个上下文中,我应该使用什么语法来比较Date类型的两个字段dateFieldOne和dateFieldTwo?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 15:18:40

矩库是你在这里的朋友:

代码语言:javascript
运行
复制
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...

稍后,您还可以查询所需的粒度级别,例如:

代码语言:javascript
运行
复制
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目录中。

票数 4
EN

Stack Overflow用户

发布于 2016-04-13 21:52:55

对于此代码

代码语言:javascript
运行
复制
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时间戳,然后直接比较它们。

代码语言:javascript
运行
复制
  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();
              }
            }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24630244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档