代码如下:
const moment = require('moment');
let options = {
startYear :2020,
startMonth : 5,
endYear: 2021,
endMonth: 8,
}
function addPaddingZero(date) {
return date.toString().length == 1 ? `0${date}` : `${date}`;
}
console.log(moment(`${options.startYear}-${addPaddingZero(options.startMonth)}-01`).startOf('day').toDate())
console.log(moment(`${options.endYear}-${addPaddingZero(options.endMonth)}-01`).startOf('day').toDate())
其实就是:
moment('2022-05-01').startOf('day').toDate()
moment('2022-08-01').startOf('day').toDate()
moment.js v2.29.2
因为是UTC时间,所以输出结果如下:
// 2020-04-30T16:00:00.000Z
// 2021-07-31T16:00:00.000Z
但是我在另外一个项目里一样的代码出来的却是另外一个结果呢?
addPaddingZero 的内容是一样的。
const query: any = {
scorePeriod: {
$gte: moment(`${options.startYear}-${this.helper.addPaddingZero(options.startMonth)}-01`)
.startOf('day')
.toDate(),
$lte: moment(`${options.endYear}-${this.helper.addPaddingZero(options.endMonth)}-01`)
.endOf('day')
.toDate(),
},
};
moment.js v2.29.1
输出结果如下:
// 2020-04-30T16:00:00.000Z
// 2021-08-01T15:59:59.000Z
就是同样的
moment('2022-08-01').startOf('day').toDate()
在同一个电脑上跑的来的时间最后是不一样的,看官网API 2021-07-31T16:00:00.000Z 的结果 是对,怎么在另外一个项目里跑的代码会多了一天的时间呢?还是我的用法有问题?版本也相差不大,求大神?