Estoy tratando de establecer la hora de inicio del día a una hora en particular. actualmente, en momentjs, puedo comenzar el día así
let now = moment() console.log('now', now.toString()) console.log('start Day', now.startOf('day').toString()) // Thu Oct 07 2021 00:00:00 GMT+0530 console.log('end day', now.endOf('day').toString()) //Thu Oct 07 2021 23:59:59 GMT+0530¿Hay alguna manera de que pueda configurar el inicio de mi día a partir de una hora determinada como si quisiera comenzar mi día desde
jue 07 oct 2021 08:00:00 GMT+0530
y terminar en
jue 07 oct 2021 07:59:59 GMT+0530
Probablemente debería escribir su propia función para lograr esto.
function customStartOf(momentObj) { return momentObj.clone().startOf('day').hours(8); } function customEndOf(momentObj) { // I assume that end of the day is bigger than start of the day return momentObj.clone().endOf('day').add(1, 'days').hours(7); } let now = moment(); console.log('now', now.toString()) ; console.log('start Day', now.startOf('day').toString()); console.log('end day', now.endOf('day').toString()); console.log('custom start Day', customStartOf(now).toString()); console.log('custom end day', customEndOf(now).toString()); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>Hay que tener en cuenta la zona horaria.
let myDate = new Date(); const timezoneOffset = moment(myDate).utcOffset(); moment(myDate).utc().add(timezoneOffset, 'minutes').startOf('day').format(); moment(myDate).utc().add(timezoneOffset, 'minutes').endOf('day').format();