以给定的精度设置日期格式

Format a date at a given precision

本文关键字:设置 日期 格式 精度      更新时间:2023-10-24

通过moment.js,在JavasScript中格式化日期变得非常容易。但我想知道是否有一种简单的方法可以格式化给定精度的日期(有或没有这个库)。说:

var date = new Date();
assert.equal(format(date, 'days'), '2015-02-13')
assert.equal(format(date, 'minutes'), '2015-02-13 11:14')

我可以很容易地想象不同情况下的切换情况,并且可以理解输出格式仅在我看来是标准的,但仍然如此。

使用Date对象,您可以随心所欲地制作自己的格式化程序。这样的东西够吗?

var getFullDate = function(d) {
  var day = d.getDate();
  day = day < 10 ? '0' + day : day;
  var month = d.getMonth() + 1;
  month = month < 10 ? '0' + month : month;
  return d.getFullYear() + '-' + month + '-' + day;
}
var getHoursAndMinutes = function(d) {
  var minutes = d.getMinutes()
  minutes = minutes < 10 ? '0' + minutes : minutes;
  var hours = d.getHours()
  hours = hours < 10 ? '0' + hours : hours;
  return hours + ':' + minutes;
}
var format = function(d, fmt) {
  switch(fmt){
    case 'minutes': return getFullDate(d) + ' ' +  getHoursAndMinutes(d);
    case 'days': return getFullDate(d);
  }
}