如何在Moment.js中获取当日结束时间的ISO字符串且毫秒为.000Z而非.999Z
最优实现方案
直接调用moment内置的milliseconds()方法覆盖endOf操作设置的毫秒值即可,不需要手动拼接字符串:
const now = moment() console.log(now.endOf('day').milliseconds(0).toISOString()) // 输出符合要求的 2021-10-25T21:59:59.000Z
如果你的场景需要固定使用UTC时间,只需额外加一步utc()调用即可:
console.log(moment().utc().endOf('day').milliseconds(0).toISOString())
方案说明
endOf('day')操作会自动把时间的毫秒位设置为999,你只需要通过milliseconds(0)手动把毫秒位重置为0,再调用原生的toISOString()方法输出即可。相比手动拼接字符串的方案,这个实现完全基于moment内置API,逻辑更清晰,也避免了手动写格式模板可能出现的拼写错误。
内容的提问来源于stack exchange,提问作者6axter82
相关产品推荐
相关产品推荐

