JS中从一种格式到另一种格式的日期

时间:2015-02-04 19:15:31

标签: javascript jquery date

我有这个输入:2015-01-03 16:29:05 需要获得输出2015年1月3日16:29:05 请帮我用Javascript来搞定。 尝试使用新的Date()将输入转换为Date对象。但它显示错误说无效日期。

2 个答案:

答案 0 :(得分:2)

解构:

var parsed = input.match(/^(\d{4})-(\d\d)-(\d\d) (\d\d:\d\d:\d\d)$/);
if( !parsed) throw new Error("Could not parse date as YYYY-MM-DD HH:ii:ss");

然后重建:

var monthstr = "JanFebMarAprMayJunJulAugSepOctNovDec";
var output = monthstr.substr((parsed[2]-1)*3,3)+
       " "+parsed[3]+" "+parsed[1]+
       " "+parsed[4];

你可能对Moment JS感兴趣的更高级的东西,但对于这个简单的东西只是一个基本的字符串操作。

答案 1 :(得分:0)

是的,新的Date()应该可以正常使用该字符串。这对我有用:

var d = new Date('2015-01-03 16:29:05');

var options = {
    year: "numeric", month: "short", day: "2-digit", 
    hour: "2-digit", minute: "2-digit", second:  "2-digit" };

var dateStr = d.toLocaleTimeString('en-GB', options);
var dateFormatted = dateStr.slice(3, 7) + 
                    dateStr.slice(0,2) + 
                    dateStr.slice(6);

console.log(dateFormatted); // gives 'Jan 03 2015 16:29:05'

希望这会对你有所帮助。参考:MSDN