【问题标题】:Convert long string into date and calculate difference between them [duplicate]将长字符串转换为日期并计算它们之间的差异[重复]
【发布时间】:2019-08-24 13:37:56
【问题描述】:

我有两个长字符串格式的日期,例如 "Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time)",我想对它们进行区分。

代码:

var x = "Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time)"
var today = new Date();
var diff = today.getDate() - x;
alert(diff);

【问题讨论】:

  • 在..方面的区别?天数?小时?
  • @wentjun 天数
  • 好的,等一下,让我更新我的答案
  • @wentjun 如何获得确切的年、日和月的差异
  • 嗯.. 你希望你的结果是什么样的?假设两个日期之间的差异是 40 天。当谈到几个月时,40 天应该等于什么?我应该发言还是天花板?

标签: javascript date


【解决方案1】:

要找出两个日期之间的差异,您应该将它们都转换为 Date 对象。这是假设您要计算您在问题中提到的那一天与今天之间的天数之间的差异。

 const x =  new Date("Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time)").setHours(0,0,0,0);
 const today = new Date().setHours(0,0,0,0);
 const diff = today - x;
 const oneDay = 24*60*60*1000;
 const result = diff/oneDay;

【讨论】:

    【解决方案2】:

    JS Date() 类可以将您的字符串解析为日期。剩下的只是数学。

    var dateFirst = new Date("Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time");
    var dateSecond = new Date("Thu Apr 12 2013 23:59:59 GMT+0530 (India Standard Time");
    
     // time difference
     var timeDiff = Math.abs(dateSecond.getTime() - dateFirst.getTime());
    
     // days difference
     var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
    
     // difference
     console.log(diffDays);

    【讨论】:

    • 如何得到准确年、日、月的差异
    【解决方案3】:

    您可以将日期字符串传递给 Date()。它将返回日期对象。然后你就可以发现不同了。

    var date1 = new Date("Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time)");
    var today = new Date();
    var diffTime = Math.abs(today .getTime() - date1.getTime());
    var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
    console.log(diffDays);
    

    【讨论】:

      【解决方案4】:

      你可以参考下面的例子使用时刻:

      1) Install via NPM dependencies:
      
      npm install moment
      2) Import in your Typescript file:
      
      import * as moment from 'moment'
      3) Typescript file:
      const x =  new Date("Thu Apr 11 2013 23:59:59 GMT+0530 (India Standard Time)")
      const today = new Date();
      let date1 = moment(x, "DD-MM-YYYY");
      let date2 = moment(today, "DD-MM-YYYY"); 
      let duration = moment.duration(date1.diff(date2));
      let days = duration.asDays();
      

      Moment 以多种方式提供了日期差异的功能。

      【讨论】:

        猜你喜欢
        • 2013-12-21
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2021-07-02
        • 2014-05-25
        • 2012-07-30
        • 2018-11-24
        • 1970-01-01
        相关资源
        最近更新 更多