moment.js startOf 问题
moment.js startOf issue
我正在尝试使用 moment.js
获取一天(距今天几天)的开始和结束时间。这是我的代码:
var today = moment();
var day = today.add(-5, "days");
var startOfDay = day.startOf("day");
var endOfDay = day.endOf("day");
console.log("today " + today.format());
console.log("day " + day.format());
console.log("start " + startOfDay.format());
console.log("end " + endOfDay.format());
这些是日志:
I2015-11-10T15:19:02.930Z]today 2015-11-10T15:19:02+00:00
I2015-11-10T15:19:02.931Z]day 2015-11-05T15:19:02+00:00
I2015-11-10T15:19:02.932Z]start 2015-11-05T23:59:59+00:00
I2015-11-10T15:19:02.933Z]end 2015-11-05T23:59:59+00:00
如您所见,start
和 end
日期完全相同。 end
日期符合预期,但是,startOf
函数似乎与 endOf
函数完全相同。
我是否遗漏了什么?
日期是可变的,并且会被方法调用改变。您的两个日期实际上都是同一个日期对象。也就是说,day.startOf("day")
returns 两次调用时 day
的值。但是您可以制作副本:
var startOfDay = moment(day).startOf("day");
var endOfDay = moment(day).endOf("day");
即构造了两个新实例。
我正在尝试使用 moment.js
获取一天(距今天几天)的开始和结束时间。这是我的代码:
var today = moment();
var day = today.add(-5, "days");
var startOfDay = day.startOf("day");
var endOfDay = day.endOf("day");
console.log("today " + today.format());
console.log("day " + day.format());
console.log("start " + startOfDay.format());
console.log("end " + endOfDay.format());
这些是日志:
I2015-11-10T15:19:02.930Z]today 2015-11-10T15:19:02+00:00
I2015-11-10T15:19:02.931Z]day 2015-11-05T15:19:02+00:00
I2015-11-10T15:19:02.932Z]start 2015-11-05T23:59:59+00:00
I2015-11-10T15:19:02.933Z]end 2015-11-05T23:59:59+00:00
如您所见,start
和 end
日期完全相同。 end
日期符合预期,但是,startOf
函数似乎与 endOf
函数完全相同。
我是否遗漏了什么?
日期是可变的,并且会被方法调用改变。您的两个日期实际上都是同一个日期对象。也就是说,day.startOf("day")
returns 两次调用时 day
的值。但是您可以制作副本:
var startOfDay = moment(day).startOf("day");
var endOfDay = moment(day).endOf("day");
即构造了两个新实例。