【发布时间】:2019-05-26 03:45:28
【问题描述】:
我有一个时间戳,我试图将其四舍五入到最近的 UTC 星期一 00:00:00:00:000Z
我现在的代码是这样的
let now = Date.now()
moment.unix(now / 1000).utc().startOf("isoWeek").valueOf()
我正在尝试用普通的 JS 立即执行此操作,但我没有得到相同的答案
const nearestMonday = date => {
const monday = 1;
const currentDay = date.getDay();
const distance = (monday + 7 - currentDay) % 7;
const newDate = new Date(date.getTime());
newDate.setDate(date.getDate() + distance);
newDate.setHours(0, 0, 0, 0);
return newDate;
}
> d = Date.now()
1545989455067
> nearestMonday(new Date(d)).getTime()
1546194600000
> m.unix(Date.now() / 1000).utc().startOf("isoWeek").valueOf()
1545609600000
我在格林威治标准时间 + 530 区,我要改变什么才能得到与时刻相同的答案
【问题讨论】:
标签: javascript date timestamp momentjs