我正在制作一件我要求计算时间差异的作品,例如1月22日发生的事件,今天是1月27日,所以我想比较两个日期并显示“5天前”。我将事件日期作为时间戳格式的json数据。如何将其与今天的日期进行比较的任何线索,并显示'天前'逻辑
答案 0 :(得分:0)
用法:
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();
});
结果:
答案 4 :(得分:0)
如果您想与今天的日期进行比较,请使用angular-moment的am-time-ago
,并将其添加到html,如下所示:
<span am-time-ago="time"></span>
确保在控制器中将time
定义为日期/时刻对象