Vít*_*ins 4 javascript momentjs
我正在搜索moment.js文档和stackoverflow,以获得使用该fromNow()函数但在几小时内返回所有内容的方法.
我的意思是:
moment([2017, 01, 05]).fromNow(); // a day ago
Run Code Online (Sandbox Code Playgroud)
应该
moment([2017, 01, 05]).fromNow(); // 24 hours ago
Run Code Online (Sandbox Code Playgroud)
我知道可以使用.diff和可能其他类似的功能,然后添加文本,但是可以使用.fromNow()这样做吗?
您可以使用relativeTimeThreshold自定义时刻相对时间的阈值.
正如文档所说:
duration.humanize具有阈值,定义何时将单位视为分钟,一小时等.例如,默认情况下,超过45秒被视为一分钟,超过22小时被视为一天,依此类推.改变这些截断值使用moment.relativeTimeThreshold(unit, limit),其中单元是下列之一s,m,h,d,M.
在您的情况下,您可以增加小时阈值以将相对天数作为小时数.这是一个工作示例,显示从1小时到26天的小时数:
var m1 = moment().subtract(5, 'h');
var m2 = moment().subtract(55, 'h');
var m3 = moment().subtract(1, 'd');
// Default results
console.log(m1.fromNow());
console.log(m2.fromNow());
console.log(m3.fromNow());
// Change relativeTimeThreshold
moment.relativeTimeThreshold('m', 60);
moment.relativeTimeThreshold('h', 24*26);
// Results in hours
console.log(m1.fromNow());
console.log(m2.fromNow());
console.log(m3.fromNow());Run Code Online (Sandbox Code Playgroud)
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>Run Code Online (Sandbox Code Playgroud)
请注意,如果需要,moment允许您使用relativeTime(这里的一个示例)和relativeTimeRounding方法进一步自定义相对时间.
如果您确实想使用fromNow(),除了覆盖 moment 的内置函数之外,我看不到任何其他方法。例如,您可以覆盖它以返回小时差异,如下所示:
moment.fn.fromNow = function (a) {
var duration = moment().diff(this, 'hours');
return duration;
}
Run Code Online (Sandbox Code Playgroud)
然后您可以检查fromNow()以小时为单位返回值:
console.log(moment([2017,0,6]).fromNow());
Run Code Online (Sandbox Code Playgroud)
返回:
19
Run Code Online (Sandbox Code Playgroud)
注意:在 19:00 尝试:)
| 归档时间: |
|
| 查看次数: |
13490 次 |
| 最近记录: |