date-fns如何以00:00:00代替23:59:59的格式获得一天的结束



我正在替换逐日期的fns,我希望将endOfDay格式化为moment.js。

我是说moment.js给了我这个00:00:00日期fns给我这个23:59:59

moment.js

moment().endOf('isoWeek').startOf('day').toDate()
//output: 00:00:00

日期fns

export const thisWeekEndOn = () => {
return endOfWeek(NEW_DATE, {weekStartsOn: monday});
}
//output: 23:59:59

我不是在写这两个函数的全部输出,只是小时:分钟:秒

根据文档


endOfDay()返回23:59:59.999:

// The end of a day for 2 September 2014 11:55:00:
const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))
//=> Tue Sep 02 2014 23:59:59.999

文档:https://date-fns.org/v2.22.1/docs/endOfDay


startOfDay()返回00:00:00

// The start of a day for 2 September 2014 11:55:00:
const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
//=> Tue Sep 02 2014 00:00:00

文档:https://date-fns.org/v2.22.1/docs/startOfDay


如果您想要00:00:00而不是endOfDay(),则可能需要使用startOfDay():(

它不是由moment.js引起的:它是由.startOf((引起的

您建议moment在一天结束时给出0:00,但您的代码显示它不是。

你要求一天结束,然后要求一天开始的时间。

//                        *******
moment().endOf('isoWeek').startOf('day').toDate()
//output: 00:00:00        *******

通过日期实现这一点

你能在datefns中使用类似的结构吗?

例如,这对你有用吗?

export const thisWeekEndOn = () => endOfWeek(NEW_DATE, {weekStartsOn: monday});

还是这个?

export const thisWeekEndOn = () => startOfDay(endOfWeek(NEW_DATE, {weekStartsOn: monday}));