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()}请回答这个问题;不要将代码放在注释中。另外,您希望输出结果是什么?您要求它获取当前日期和时间,并计算当前日期和时间与当前日期和时间的距离,它们总是相隔一秒(两次通话的时间)。