提问者:小点点

Moment.js startOf正在返回结束日期


我正在通过查询字符串传递以下日期:2020-09-23

我正在试图弄明白为什么下面的代码上面有dost't work注释它是不工作的。

// If figure here I should only have to convert to a moment once
const momentDate = moment.utc(req.query.dateTime);

// Doesn't work
const startOfDay = momentDate.startOf('day');
const endOfDay = momentDate.endOf('day');

这就是我得到的信息:
console.log(startOfDay)=时刻<;2020-09-23t23:59:59z>
console.log(endOfDay)=时刻<;2020-09-23t23:59:59z>;

// Works (when I directly pass in the query string param)
const startOfDay = moment.utc(req.query.dateTime).startOf('day');
const endOfDay = moment.utc(req.query.dateTime).endOf('day');

console.log(startOfDay)=时刻<2020-09-23t00:00:00z>
console.log(endOfDay)=时刻<2020-09-23t23:59:59z>;


共1个答案

匿名用户

您正在对同一个对象momentdate执行相同的引用,因此更安全的方法是通过使用clone()方法克隆momentdate来处理该对象的副本

const momentDate = moment.utc(new Date())

const startOfDay = momentDate.clone().startOf("day")
const endOfDay = momentDate.clone().endOf("day")

console.log(startOfDay)
console.log(endOfDay)