Как получить end of day toISOString() в momentjs, но миллисекунды должны быть .000Z, а не.999Z

#reactjs #angular #react-native #vue.js #momentjs

Вопрос:

В принципе, у меня есть дата:

 const now = moment()
console.log(now.endOf('day').toISOString()) // 2021-10-25T21:59:59.999Z
 

Я бы хотел, чтобы это было так: 2021-10-25T21:59:59.000Z

В качестве обхода я сделал

 console.log(`${moment().endOf('day').utc().format('YYYY-MM-DDTHH:mm:ss')}.000Z`)
 

и получил желаемую распечатку, но

МОЖЕТ БЫТЬ, У КОГО-ТО ЕСТЬ более элегантный способ?

Спасибо, люди!

Комментарии:

1. Из любопытства, почему вы хотите это сделать?

Ответ №1:

В качестве альтернативы, вы можете преобразовать moment в a Date (или просто использовать Date сам) и использовать Date.prototype.setUTCHours() with 0 в качестве 4-го аргумента (для миллисекунд):

 const now = new Date()
now.setUTCHours(23,59,59,0) // end of day
console.log(now.toISOString())