使用javascript格式化DATE(可能正则表达式)

pao*_*sso 4 javascript regex jquery date

我正在使用JavaScript和JQuery,我有一个这样的字符串(不可更改的xml响应):

var str = "2017-01-08T16:06:52+00:00";
Run Code Online (Sandbox Code Playgroud)

如何转换为这样的日期:

08 january 2017, 16:06:52
Run Code Online (Sandbox Code Playgroud)

或至少:

08 01 2017, 16:06:52
Run Code Online (Sandbox Code Playgroud)

我试图使用.replace()像:

str = str.replace(/(\d{4})-(\d{2})-(\d{2})T(\d{8}).*/,'$2 $3 $1, $4');
Run Code Online (Sandbox Code Playgroud)

但它不起作用.:(

Ror*_*san 6

为此,您可以Date()从字符串创建对象,然后将Date()对象公开的方法中的字符串连接在一起.试试这个:

var str = "2017-01-08T16:06:52+00:00";
var date = new Date(str);
var months = [ "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" ];

var dateString = ("00" + date.getDate()).slice(-2) + ' ' + months[date.getMonth()] + ' ' + date.getFullYear() + ', ' + ("00" + date.getHours()).slice(-2) + ':' + ("00" + date.getMinutes()).slice(-2) + ':' + ("00" + date.getSeconds()).slice(-2);

console.log(dateString);
Run Code Online (Sandbox Code Playgroud)

请注意,通过使用日期格式库(例如MomentJS或DateJS)可以使这更简单,但是包括整个库来格式化单个日期是相当浪费的.如果您需要在整个网站中反复执行此操作,那么它们可能是值得的.

另请注意,在英语国家/地区,月份名称应大写,因此请考虑修改该案​​例的格式.