我有以下代码,其中我从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>