【问题标题】:Is there an easier way to write this method?有没有更简单的方法来编写这个方法?
【发布时间】:2018-10-18 12:35:49
【问题描述】:

大家好,阅读本文。

我有一种方法可以用当前时间获取今天的日期。 如果数据库中的截止日期值为空,它将获取当前日期时间并将其格式化为正确的格式。否则它只会格式化截止日期。

但我想知道是否有更简单的方法可以做到这一点?

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;
  }

【问题讨论】:

标签: javascript laravel datetime vue.js datetimepicker


【解决方案1】:

正如@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');
  }

【讨论】:

  • 谢谢。这与我所拥有的完全一样。这看起来更干净:)
【解决方案2】:

如果您使用的是momentjs,您只需将一个日期对象传递给moment 函数。如果函数不接收参数,则默认为当前时间(与new Date() 相同)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多