如何随时获得一天的开始和结束?

时间:2018-04-18 21:23:05

标签: javascript momentjs

我想使用.add(1, 'day')获取当天的开始和结束(以及moment明天的配饰)。

我现在得到的是

now = moment()
console.log('now ' + now.toISOString())
console.log('start ' + now.startOf('day').toISOString())
console.log('end ' + now.endOf('day').toISOString())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.js"></script>

现在输出

now 2018-04-18T21:20:02.010Z
start 2018-04-17T23:00:00.000Z
end 2018-04-18T22:59:59.999Z

由于时间转移了一个小时,我相信这是与时区有关的事情,虽然我不明白这是如何相关的:无论时区,该时区的那一天是在今天午夜之后开始的,在今天午夜之前结束。

2 个答案:

答案 0 :(得分:4)

它是在当地时间午夜给你,但你在祖鲁时间打印出来。请尝试使用toString,它会在当地时间打印超时。

now = moment()
console.log('now ' + now.toString())
console.log('start ' + now.startOf('day').toString())
console.log('end ' + now.endOf('day').toString())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.js"></script>

答案 1 :(得分:0)

如果你想从星期一开始,你必须使用这个moment().startOf('isoWeek');

console.log({
  from_date: moment().startOf('isoWeek').toString(),
  today: moment().toString(),
  to_date: moment().endOf('isoWeek').toString(),
});