没有Moment.js的Pikaday日期格式

j_d*_*j_d 8 javascript date pikaday

我正在使用Pikaday,它需要Moment.js格式化日期.这允许简单的日期格式:

var picker = new Pikaday({
  format: 'YYYY-MM-DD'
});
Run Code Online (Sandbox Code Playgroud)

但是,当我加入Pikaday npm包时,Moment.js 超过40kb.我需要它的所有内容都是将日期格式更改YYYY-MM-DD为几乎无法使用的默认Pikaday格式.

我是否可以在不包含40kb库的情况下完成此操作?

Mic*_*ski 8

如果只想使用格式YYYY-MM-DD,可以使用本机Date方法构建日期字符串:

const picker = new Pikaday({
  field: document.getElementById('datepicker')
 ,onSelect: date => {
    const year = date.getFullYear()
         ,month = date.getMonth() + 1
         ,day = date.getDate()
         ,formattedDate = [
            year
           ,month < 10 ? '0' + month : month
           ,day < 10 ? '0' + day : day
          ].join('-')
    document.getElementById('datepicker').value = formattedDate
  }
})
Run Code Online (Sandbox Code Playgroud)

演示

const picker = new Pikaday({
  field: document.getElementById('datepicker')
 ,onSelect: date => {
    const year = date.getFullYear()
         ,month = date.getMonth() + 1
         ,day = date.getDate()
         ,formattedDate = [
            year
           ,month < 10 ? '0' + month : month
           ,day < 10 ? '0' + day : day
          ].join('-')
    document.getElementById('datepicker').value = formattedDate
  }
})
Run Code Online (Sandbox Code Playgroud)
@import url("https://rawgit.com/dbushell/Pikaday/master/css/pikaday.css");
Run Code Online (Sandbox Code Playgroud)
<script src="https://rawgit.com/dbushell/Pikaday/master/pikaday.js"></script>
<input type="text" id="datepicker">
Run Code Online (Sandbox Code Playgroud)

  • 只是好奇 - 您在答案中使用逗号的方式是一种常见的方式吗?为什么不在它适用的行后面加上逗号,例如`const year = date.getFullYear(),`? (2认同)