我一直在用JavaScript掙扎超過一個小時,想出了一個解決方案 - 請求您的幫助!關於格式的Javascript日期問題
RSS源生成此格式的每篇文章的日期2011-05-18T17:32:43Z。我怎樣才能讓它看起來像17:32 18.05.2011?
預先感謝您!
我一直在用JavaScript掙扎超過一個小時,想出了一個解決方案 - 請求您的幫助!關於格式的Javascript日期問題
RSS源生成此格式的每篇文章的日期2011-05-18T17:32:43Z。我怎樣才能讓它看起來像17:32 18.05.2011?
預先感謝您!
假設您已經解析的RSS日期爲JS Date
對象(可能會非常棘手,因爲許多Date.parse
實現不接受這樣的ISO-8601日期)...
//var d=new Date(/*...*/)
// 17:32 18.05.2011
pad(d.getHours())+':'+d.getMinutes()+' '+
pad(d.getDate())+'.'+pad(d.getMonth()+1)+d.getFullYear();
(getMonth返回基於0-11個月)
...你也會希望當月某種零緩衝(在你的例子),並可能日,小時(視)....
function pad(val,len) {
var s=val.toString();
while (s.length<len) {s='0'+s;}
return s;
}
從與字符串
可選>字符串,你可以使用:
function reformat(str) {
var isodt=string.match(/^\s*(\-?\d{4}|[\+\-]\d{5,})(\-)?(\d\d)\2(\d\d)T(\d\d)(:)?(\d\d)?(?:\6(\d\d))?([\.,]\d+)?(Z|[\+\-](?:\d\d):?(?:\d\d)?)\s*$/i);
if (isodt===null) {return '';} // FAILED
return isodt[5]+':'+isodt[7]+' '+isodt[4]+'.'+isodt[3]+'.'+isodt[1];
}
您可以創建一個新的Date
,得到碎片了出來,並串連一切:
function parse(date) {
var d = new Date(date)
return d.getHours() + ":" + d.getMinutes()
+ " " + d.getDate() + "." + (d.getMonth()+1)
+ "." + d.getFullYear();
}
可能重複的[在javascript中格式化日期](http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript) – Jeremy 2011-05-19 18:47:44