Показать сообщение отдельно
  #16 (permalink)  
Старый 14.07.2022, 18:44
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
NovichokJS,
... исправленный вариант со switch
const getNewDate = initValue => {
    const newValue = {
    add(dateInterval, number) {
      switch (dateInterval) {
        case 'years':
          initValue.setFullYear(initValue.getFullYear() + number);
          break;
        case 'months':
          initValue.setMonth(initValue.getMonth() + number);
          break;
        case 'days':
          initValue.setDate(initValue.getDate() + number);
          break;
        case 'hours':
          initValue.setHours(initValue.getHours() + number);
          break;
        case 'minutes':
          initValue.setMinutes(initValue.getMinutes() + number);
          break;
        case 'seconds':
          initValue.setSeconds(initValue.getSeconds() + number);
          break;
        case 'milliseconds':
          initValue.setMilliseconds(initValue.getMilliseconds() + number);
          break;
      }
      return this;
    },

    subtract(dateInterval, number) {
      switch (dateInterval) {
        case 'years':
          initValue.setFullYear(initValue.getFullYear() - number);
          break;
        case 'months':
          initValue.setMonth(initValue.getMonth() - number);
          break;
        case 'days':
          initValue.setDate(initValue.getDate() - number);
          break;
        case 'hours':
          initValue.setHours(initValue.getHours() - number);
          break;
        case 'minutes':
          initValue.setMinutes(initValue.getMinutes() - number);
          break;
        case 'seconds':
          initValue.setSeconds(initValue.getSeconds() - number);
          break;
        case 'milliseconds':
          initValue.setMilliseconds(initValue.getMilliseconds() - number);
          break;
      }
      return this;
    },


    result() {
      return initValue;
    },
  };
  return newValue;
};

const res = getNewDate(new Date(2020, 0, 7, 17, 17, 17))
  .add('minutes', 2)
  .add('days', 8)
  .subtract('years', 1)
  .result();
// Output: ...Jan 15 2019 17:19:17.....

console.log(res);
я понял, я так исправил, но такой вариант возвращает дату в формате
2019-01-15T15:19:17.000Z


Мне же нужно в таком формате:
Jan 15 2019 17:19:17
Ответить с цитированием