比较两个日期Angularjs

时间:2016-01-27 07:47:11

标签: javascript angularjs

我正在制作一件我要求计算时间差异的作品,例如1月22日发生的事件,今天是1月27日,所以我想比较两个日期并显示“5天前”。我将事件日期作为时间戳格式的json数据。如何将其与今天的日期进行比较的任何线索,并显示'天前'逻辑

5 个答案:

答案 0 :(得分:0)

您可以使用momentjs及其diff功能。

用法:

moment().diff(Moment|String|Number|Date|Array);

示例:

var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
var difference = a.diff(b, 'days')

只需在index.html中包含脚本(或者包含它们,否则包含它们),然后使用常规依赖注入在控制器中包含moment

答案 1 :(得分:0)

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var today = new Date();
var secondDate = new Date(2016,01,27);

var diffDays = Math.round(Math.abs((today.getTime() - secondDate.getTime())/(oneDay)));

答案 2 :(得分:0)

您可以执行类似日期差异的操作:

function DateDiff () {
    return {
      diff: diff,
    };

    function diff (date1, date2) {
      return dateDiff(date1 - date2);
    }

    function dateDiff (ms) {
      var d, h, m, s, data;
      data = {};
      s = Math.floor(ms / 1000);
      m = Math.floor(s / 60);
      s = s % 60;
      h = Math.floor(m / 60);
      m = m % 60;
      d = Math.floor(h / 24);
      h = h % 24;
      data.days = d;
      data.hours = h;
      data.minutes = m;
      data.seconds = s;
      return data;
    }
  }
console.log(DateDiff.diff(Date1_object, Date2_object));

根据diff返回的值,您可以显示文本。您在天,小时,分钟和秒之间会有所不同,此信息应足以显示您要显示的文字。

答案 3 :(得分:0)

使用此:

<input id="first" value="8/5/2012" placeholder="m/d/yyyy"/>
<input id="second" value="10/15/2012"/><hr>
<button id="btn">Show Days</button>
<div id="result"></div>
<hr>

JQuery:

$("#btn").click( function(){
            $("#result").text("Number of days : " + daydiff(parseDate($('#first').val()), parseDate($('#second').val())));
}); 

    function parseDate(str) {
    var mdy = str.split('/')
    return new Date(mdy[2], mdy[0]-1, mdy[1]);
}

function daydiff(first, second) {
    return (second-first)/(1000*60*60*24)
}

$("#btn1").click( function(){
   alert(monthDiff(new Date(2011, 0, 1), new Date()));
 var a = $('#first').val();
var b = $('#second').val();

}); 

结果:

enter image description here

答案 4 :(得分:0)

如果您想与今天的日期进行比较,请使用angular-momentam-time-ago,并将其添加到html,如下所示:

<span am-time-ago="time"></span>

确保在控制器中将time定义为日期/时刻对象