#javascript #datetime #momentjs
Вопрос:
Я пытаюсь установить время начала дня на определенное время. в настоящее время в momentjs я могу начать день вот так
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
есть ли какой-нибудь способ, чтобы я мог начать свой день с определенного времени, как я хочу начать свой день с
Чт 07 октября 2021 08:00:00 GMT 0530
и закончим на
Чт 07 октября 2021 07:59:59 GMT 0530
Ответ №1:
Вероятно, вам следует написать свою собственную функцию, чтобы достичь этого.
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>
Комментарии:
1. Мне нужна разница между «Чт 07 октября 2021 08:00:00 по Гринвичу 0530» и «Пт 08 октября 2021 08:00:00 по Гринвичу 0530» == 1 , но я понял это по вашей логике любая идея, как этого достичь
2. Я хочу рассчитать разницу в дате между двумя днями на основе «Начала дня»
3. также
console.log('now', now.toString()) ;
распечатайте то же значение, что и этоconsole.log('custom end day', customEndOf(now).toString());
4. @ManjeetThakur Я отредактировал свой ответ. Пользовательские функции теперь возвращают клонированные объекты, поэтому
add
функция не изменит результаты пользовательских функций.5. но console.log(«пользовательский день начала», customStartOf(сейчас).startOf(«день»). toString()) по-прежнему выводит
Thu Oct 07 2021 00:00:00 GMT 0530