如何让moment.js以秒为单位显示相对时间?

时间:2017-02-14 01:57:11

标签: javascript jquery datetime time momentjs

以下脚本显示从现在起到2017/07/03的相对时间。



document.write(moment("20170703 00:00:00", "YYYYMMDD hh:mm:ss").fromNow());

<script src="https://cdn.bootcss.com/moment.js/2.17.1/moment.min.js"></script>
&#13;
&#13;
&#13;

它会返回类似in 5 months的内容,而我期望类似in 123456789 seconds

2 个答案:

答案 0 :(得分:3)

您可以通过这种方式轻松获得从现在开始的秒数:

var seconds = moment("20170703 00:00:00", "YYYYMMDD hh:mm:ss").unix() - moment().unix()

答案 1 :(得分:3)

您可以使用diff指定'seconds'单位作为第二个参数,在两个时刻对象之间获得秒数:

&#13;
&#13;
var mom = moment("20170703 00:00:00", "YYYYMMDD HH:mm:ss");
document.writeln(mom.fromNow());
document.writeln(mom.diff(moment(), 's'));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment.min.js"></script>
&#13;
&#13;
&#13;

如果您需要自定义时刻显示相对时间的方式(例如fromNow()输出),您可以使用relativeTimeThresholdrelativeTime。这是一个例子:

&#13;
&#13;
var mom = moment("20170703 00:00:00", "YYYYMMDD HH:mm:ss");
console.log(mom.fromNow());

// Change relativeTimeThreshold
moment.relativeTimeThreshold('s', 60*60*24*30*12);

moment.updateLocale('en', {
  relativeTime : {
    s: function (number, withoutSuffix, key, isFuture){
      return number + ' seconds';
    },
  }
});

console.log(mom.fromNow());
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment.min.js"></script>
&#13;
&#13;
&#13;