Есть ли более простой способ написать этот метод? - PullRequest
0 голосов
/ 18 октября 2018

Привет всем, кто читает это.

У меня есть метод, чтобы получить сегодняшнюю дату с текущим временем.Если значение крайнего срока в базе данных равно нулю, он получает текущее время и форматирует его в нужный формат.иначе он просто отформатирует крайний срок.

Но мне было интересно, есть ли более простой способ сделать это?

formatDateTime(deadline){
      var DateTime;

      if(deadline == null){
          var myDate = new Date();
          var month = ('0' + (myDate.getMonth() + 1)).slice(-2);
          var date = ('0' + myDate.getDate()).slice(-2);
          var year = myDate.getFullYear();
          var hour = ('0' + myDate.getHours()).slice(-2);
          var minute = ('0' + myDate.getMinutes()).slice(-2);
          var formattedDate = year + '-' + month + '-' + date + 'T' + hour + ':' + minute;

          DateTime = moment(formattedDate, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DDTHH:mm');
      } else {
          DateTime = moment(deadline, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DDTHH:mm');
      };

      return DateTime;
  }

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Как сказал @Andrew, вы уже используете момент

Так что эта версия будет делать именно то, что делает ваша текущая функция

function formatDateTime(deadline){

      if(deadline == null){
          deadline = moment().format('YYYY-MM-DD HH:mm'); 
      }

       return moment(deadline, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DDTHH:mm');
  }
0 голосов
/ 18 октября 2018

если вы используете momentjs , вы можете просто передать объект Date в функцию moment.если функция не получает аргументов, по умолчанию используется текущее время (так же, как new Date()).

formatDateTime(deadline) {
    return moment(deadline).format('YYYY-MM-DDTHH:mm');
}
...