将毫秒转换为yyyy-MM-dd HH:mm:ss格式Javascript

时间:2018-02-20 09:24:15

标签: javascript date datetime time calendar

输入: -

milliSecond = '1519073776000';

输出: -

Date = "2018-02-20 02:26:16";

将毫秒日期转换为yyyy-MM-dd HH:mm:s格式

1 个答案:

答案 0 :(得分:0)

您的问题有两个步骤。

第1步:从毫秒获取日期。

这可以通过致电new Date(MILLISECONDS_AS_NUMBER);轻松完成。

步骤2:从Date对象格式化日期字符串。

这有点复杂,因为没有默认的方法。

最好的方法是创建一个带有格式字符串和日期的函数,并简单地堆叠format.replace(token, Date.key)次调用。

以下是上述步骤的实现:



function toDate(date) {
  if (date === void 0) {
    return new Date(0);
  }
  if (isDate(date)) {
    return date;
  } else {
    return new Date(parseFloat(date.toString()));
  }
}

function isDate(date) {
  return (date instanceof Date);
}

function format(date, format) {
  var d = toDate(date);
  return format
    .replace(/Y/gm, d.getFullYear().toString())
    .replace(/m/gm, ('0' + (d.getMonth() + 1)).substr(-2))
    .replace(/d/gm, ('0' + (d.getDate() + 1)).substr(-2))
    .replace(/H/gm, ('0' + (d.getHours() + 0)).substr(-2))
    .replace(/i/gm, ('0' + (d.getMinutes() + 0)).substr(-2))
    .replace(/s/gm, ('0' + (d.getSeconds() + 0)).substr(-2))
    .replace(/v/gm, ('0000' + (d.getMilliseconds() % 1000)).substr(-3));
}
//TEST
var ms = '1519073776000';
var dateFormat = "Y-m-d H:i:s.v";
var formatted = format(ms, dateFormat);
console.log(formatted);




或者您可以选择退出所有这些并使用MomentJS这样的库来处理此问题。