Javascript Moment.js始终返回';几秒钟前';
从文档中: “要获取当前日期和时间,只需调用Javascript Moment.js始终返回';几秒钟前';,javascript,momentjs,Javascript,Momentjs,从文档中: “要获取当前日期和时间,只需调用moment(),无需任何参数 var now = moment(); 这与调用moment(newdate())基本相同 注意:从版本2.14.0开始,moment([])和moment({})现在也会返回。它们以前默认为2.14.0之前的今天开始,但这是任意的,因此被更改。” 我两者都试过了 moment().fromNow() 而且 moment(new Date()).fromNow() 还有很多其他的选择。页面刷新时,时间始终显示“几
moment()
,无需任何参数
var now = moment();
这与调用moment(newdate())
基本相同
注意:从版本2.14.0开始,moment([])
和moment({})
现在也会返回。它们以前默认为2.14.0之前的今天开始,但这是任意的,因此被更改。”
我两者都试过了
moment().fromNow()
而且
moment(new Date()).fromNow()
还有很多其他的选择。页面刷新时,时间始终显示“几秒钟前”
谢谢你的帮助 fromNow方法将传递给
moment()
的日期与调用该方法时的当前日期和时间进行比较
如果您不传递任何内容或将新日期()传递给moment()
,它将始终在几秒钟前返回,因为它会将它与moment的now版本进行比较(可能在某个时候调用new Date()
)。这两个日期之间的差值始终相等或相差几毫秒
如果希望显示与日期的时间差,则需要将比较日期传递到时刻
,如下所示:
var date = '2016-04-09 02:57:00';
var diff = moment(date).fromNow(); // 'A year ago'
示例输出和类似的比较方法可以在使用moment(new Date())
的瞬间文档中找到,该文档将返回now
,然后调用fromNow()
。所以时间差总是0秒(或几毫秒),所以显示的就是这个
您应该将某个日期传递到某个时刻,如:
moment("12-25-1995", "MM-DD-YYYY");
然后对其调用fromNow()
,以获取该日期和now
之间的时差,以准确获取几秒前,您可以执行以下操作
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';
}
},
function timeAgo(时间){
时刻更新刻度('en'{
相对时间:{
未来:“在%s中”,
过去:“%s以前”,
s:number=>number+“s前”,
ss:“%ds ago”,
m:“100万年前”,
mm:“%dm前”,
h:“1小时前”,
hh:“%dh前”,
d:“1d前”,
dd:“%dd前”,
M:“一个月前”,
MM:“%d个月前”,
y:“一年前”,
yy:“%d年前”
}
});
设secondsElapsed=moment().diff(时间,'秒');
让dayStart=时刻(“2018-01-01”)。开始时间(“天”)。秒(秒);
如果(第二次选择>300){
返回时刻(时间)。从现在开始(真);
}否则如果(第二次选择<60){
返回dayStart.format('s')+'s ago';
}否则{
返回dayStart.format('m:ss')+'m ago';
}
},
结果将是
2秒前
很抱歉,格式很糟糕。你能展示一些你在哪里使用这些命令的代码吗?你是如何使用数据的,以及你是如何在页面上显示数据的?这就是我在代码中调用它的方式:{moment(new Date()).fromNow()}请回答这个问题;不要将代码放在注释中。另外,您希望输出结果是什么?您要求它获取当前日期和时间,并计算当前日期和时间与当前日期和时间的距离,它们总是相隔一秒(两次通话的时间)。