Moment.js加上天数,就会得到以毫秒为单位的差值



我有以下代码,其中我从api接收时间戳,然后添加x天数,然后以毫秒为单位获得差异:-

const dateFromApi = "2020-08-28 16:36:58";
const durationInDay = 1;
var createdAt = moment.tz(dateFromApi, "Asia/Kuwait");
const added = createdAt.add(durationInDay, "days");
var diffInMilliseconds = added.diff(createdAt);
console.log(diffInMilliseconds);

CodeSandBox

差别总是给0。

如何使上面的代码以毫秒为单位返回差异?

.add文档中的As

通过添加时间来更改原始时刻。

所以当你做这个

const added = createdAt.add(durationInDay, "days");
var diffInMilliseconds = added.diff(createdAt);

它还添加到createdAt本身,因此毫无疑问比较返回0

在这种情况下,一个简单的修复方法是将createdAt克隆到不同的对象中,只需使用.clone((

const added = createdAt.clone().add(durationInDay, "days");
var diffInMilliseconds = added.diff(createdAt);

const dateFromApi = "2020-08-28 16:36:58";
const durationInDay = 1;
var createdAt = moment.tz(dateFromApi, "Asia/Kuwait");
const added = createdAt.clone().add(durationInDay, "days");
var diffInMilliseconds = added.diff(createdAt);
console.log(diffInMilliseconds);
<script src="https://momentjs.com/downloads/moment.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.min.js"></script>

最新更新