ES6中的格式化日期

时间:2015-08-03 16:32:07

标签: javascript date ecmascript-6

我正在格式化一个日期,没有momentjs或任何其他库,只是纯JS。我想知道是否有办法用ES6简化这一点

let currentDate = new Date(); 

const videosInformation = {
  time: currentDate.getHours() + ':' + currentDate.getMinutes(),
  date: (currentDate.getMonth() + 1) + '/' + currentDate.getDate() + '/' + currentDate.getFullYear(),
  gameId: Math.floor((Math.random() * 5000) + 1)
};

我在DOM中看到你使用类似renderSomething={`something: ${someObj}`}

的东西

所以你不必做renderSomething={"something: " + {someObj}}

有什么我应该用来做那种格式吗?

1 个答案:

答案 0 :(得分:16)

ES2015中没有添加类似strftime no的内容。 ECMAScript国际化规范ecma-402可以实现本地化时间:

let [date, time] = new Date().toLocaleString('en-US').split(', ');

const videosInformation = {
  time,
  date,
  gameId: Math.floor((Math.random() * 5000) + 1)
};

哪会给你美国本地化的 2015年8月4日 5:29:19 PM 或者如果你真的想要一个24小时的时钟:

new Date().toLocaleString('en-US', {hour12: false})

如果要删除秒数,那么你可以在时间上做一个子串。

您可以在MDT docs了解有关日期和时间的更多信息。