Javascript:格式化日期的简短方法

时间:2018-04-23 15:40:35

标签: javascript date format

我想按照我需要的方式格式化日期: 我想这样: YYYY-MM-DD HH:MM:SS

我在互联网上找到了解决方案:

function js_yyyy_mm_dd_hh_mm_ss () {
  now = new Date();
  year = "" + now.getFullYear();
  month = "" + (now.getMonth() + 1); if (month.length == 1) { month = "0" + month; }
  day = "" + now.getDate(); if (day.length == 1) { day = "0" + day; }
  hour = "" + now.getHours(); if (hour.length == 1) { hour = "0" + hour; }
  minute = "" + now.getMinutes(); if (minute.length == 1) { minute = "0" + minute; }
  second = "" + now.getSeconds(); if (second.length == 1) { second = "0" + second; }
  return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
}

有没有更好或更小的方法呢?

1 个答案:

答案 0 :(得分:0)

除了可能使用库进行高级日期操作外,你所做的是最好的方法"

对于较短版本,您可以使用以下字符串操作选择其中一种标准格式:



function getTime() {
  return (new Date).toISOString().replace('T', ' ').substr(0, 19)
}

console.log(getTime());




编辑1 - 本地时区

这是一个正确处理本地时区的版本:



/**
 * getTime
 * Formats a date to
 * @param {(number | string)} [dateInitializer]
 * @returns {string}
 */
function getTime(dateInitializer) {
  var d = dateInitializer !== void 0 ? new Date(dateInitializer) : new Date();
  return d.toISOString().slice(0, 10) + ' ' + d.toTimeString().slice(0, 8);
}
//TEST
console.log(getTime());