mkh*_*ra2 3 javascript momentjs
从文档:
“要获取当前日期和时间,只需moment()不使用任何参数即可调用。
var now = moment();
Run Code Online (Sandbox Code Playgroud)
这基本上与call相同moment(new Date())。
注意:从2.14.0版本,moment([])并且moment({})现在还回来。他们曾经默认将默认值设为2.14.0之前的今天开始,但这是任意的,因此已更改。”
我都尝试过
moment().fromNow()
Run Code Online (Sandbox Code Playgroud)
并且
moment(new Date()).fromNow()
Run Code Online (Sandbox Code Playgroud)
和许多其他选择。页面刷新后,时间始终显示为“几秒钟前”。
谢谢你的帮助!
为了获得准确的秒数,您可以执行以下操作。
function timeAgo(time) {
moment.updateLocale('en', {
relativeTime: {
future: "in %s",
past: "%s ago",
s: number=>number + "s ago",
ss: '%ds ago',
m: "1m ago",
mm: "%dm ago",
h: "1h ago",
hh: "%dh ago",
d: "1d ago",
dd: "%dd ago",
M: "a month ago",
MM: "%d months ago",
y: "a year ago",
yy: "%d years ago"
}
});
let secondsElapsed = moment().diff(time, 'seconds');
let dayStart = moment("2018-01-01").startOf('day').seconds(secondsElapsed);
if (secondsElapsed > 300) {
return moment(time).fromNow(true);
} else if (secondsElapsed < 60) {
return dayStart.format('s') + 's ago';
} else {
return dayStart.format('m:ss') + 'm ago';
}
},
Run Code Online (Sandbox Code Playgroud)
结果将是
2 秒前
该fromNow方法将传递moment()的日期与调用该方法时的日期和时间进行比较。
a few seconds ago如果您未传递任何内容或传递new Date()给它,则它将始终返回,moment()因为它将与现在的当前版本进行比较(可能new Date()在某个时候调用)。这两个日期之间的差将始终相等或相差几毫秒。
如果要显示与日期的时差,则需要将比较日期传递为moment:
var date = '2016-04-09 02:57:00';
var diff = moment(date).fromNow(); // 'A year ago'
Run Code Online (Sandbox Code Playgroud)
在文档http://momentjs.com/docs/#/displaying/fromnow/上可以找到示例输出和类似的比较方法
| 归档时间: |
|
| 查看次数: |
3317 次 |
| 最近记录: |