Как установить время начала рабочего дня на определенное время в momentjs

#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