需要显示信息-某个事件过去了多少时间。
例如:
var event = '2017-04-25 09:20:00';
var datea = new Date(event);
var dateb = new Date();
var diff = Math.abs(dateb.getTime() - datea.getTime());
var days = Math.ceil(diff / (1000 * 3600 * 24));
var hours = Math.ceil(diff / (1000 * 3600));
var mins = Math.ceil(diff / (1000 * 60));
var sec = Math.ceil(diff / (1000));
但这都是days
,hours
...等的总值。
我想以这种方式显示信息:
xYears xMonths xDays xHours xMins xSecs
前发生的事件
如何以上述方式计算和显示信息?
Years
和Months
可以在365
和30
天四舍五入。
此外,信息应该每秒更新一次。
有帮助吗?
答案 0 :(得分:1)
使用moment.js(这是我所知道的最可靠的日期库),它看起来像这样:
// your date
var event = '2017-04-25 09:20:00';
// Moment objects to compare
var datea = moment(event,"YYYY-MM-DD HH:mm:ss");
var now = moment();
// Find the difference
var diff = now.diff(datea);
var d = moment.duration(diff);
// Resulting object
console.log(d._data);
// Formatting...
$("span").html(d._data.years+" years, "+
d._data.months+" months, "+
d._data.days+" days, "+
d._data.hours+" hours, "+
d._data.minutes+" minutes, "+
d._data.seconds+" seconds");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<span></span>
寻找这些时刻方法: