【发布时间】:2023-03-26 02:27:02
【问题描述】:
我使用moment(d, "YYYYMMDD").fromNow(); 来获取现在日期和某个日期之间的差异,但我想不使用字符串“几天前”。
相反,我想获得“7d”(7m、1s 等)。
我该怎么做?
【问题讨论】:
标签: momentjs
我使用moment(d, "YYYYMMDD").fromNow(); 来获取现在日期和某个日期之间的差异,但我想不使用字符串“几天前”。
相反,我想获得“7d”(7m、1s 等)。
我该怎么做?
【问题讨论】:
标签: momentjs
Moment.diff 正是这样做的。
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
你可以指定一个单位:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
【讨论】:
.diff(读成减号-,你也知道是负数还是正数。
如果您只想获取两个日期之间的差异而不是相对字符串,请使用 diff 函数。
var date = moment("20170101", "YYYYMMDD");
var date7 = moment("20170108", "YYYYMMDD");
var mins7 = moment("20170101 00:07", "YYYYMMDD HH:mm");
var secs1 = moment("20170101 00:00:01", "YYYYMMDD HH:mm:ss");
console.log(date7.diff(date, "days") + "d"); // "7d"
console.log(mins7.diff(date, "minutes") + "m"); // "7m"
console.log(secs1.diff(date, "seconds") + "s"); // "1s"
【讨论】:
var before = moment('2017.02.12 09:00','YYYY.MM.DD HH:mm');
var now = moment();
console.log(
moment(now - before)
.format('D[ day(s)] H[ hour(s)] m[ minute(s)] s[ second(s) ago.]')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
【讨论】: