我有一个对象,其字段为“创建”,并带有创建该对象的日期。现在我想跟踪使用 moment.js 创建该对象的“多少小时前”强>.
我的目标是让时间显示如下例所示。
Created: 1hr ago
Created: 5hrs ago
Created: 9hrs ago
Created: 12hrs ago
Created: 14hrs ago
Created: 18hrs ago
Created: 24hrs ago
一天 24 小时内一路走来。
所以我尝试了一下:
var $created = "2016-05-01T09:58:26.796Z";
var $now = new Date();
var $lastCreatedHour = moment( moment( moment().format('H') ).diff( moment( $created ).format('H') ) ).format('H') + " hrs ago";
console.log("Created: " + $lastCreatedHour);
我的逻辑很简单,只是尝试获取当前时间和$created 小时之间的差异强>.
我实际上尝试了很多不同的方法,但没有一个有效,要么是数量不足,要么在一天 24 小时内且仅在 12 小时内无法工作。
我在日期方面不是最好的,感谢您的帮助!
谢谢。
最佳答案
如果您正在寻找所有以小时为单位的时间,那么 stdob-- 的答案就很好。
值得注意的是,Moment 内置了 .fromNow()
。只需获取创建项目的日期字符串,将其传递给 moment 构造函数,然后调用该函数:
moment($created).fromNow();
作为一个实际例子:
moment("2016-05-01T09:58:26.796Z").fromNow()
"2 hours ago"
或者,更早之前:
moment("2016-04-28T09:58:26.796Z").fromNow()
"3 days ago"
此函数将提供更加用户友好的输出,从“几秒钟前”到“x 分钟前”到“y 小时前”,再到天、月和年。
fromNow 的输出文本可以自定义。请参阅http://momentjs.com/docs/#/displaying/fromnow/基本文档和 http://momentjs.com/docs/#/customization/relative-time/获取定制说明。
作为最后的最佳实践说明,除非您有需要日期的第三方 API,否则没有必要将 javascript Date 对象与 Moment.js 一起使用。对于您正在做的事情,不需要日期。
关于javascript - 如何使用 moment.js 获取 24 小时内日期之间的小时差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36965645/