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