我一直在努力使用javascript超过一个小时并提出了一个解决方案 - 请求您的帮助!
RSS Feed以此格式 2011-05-18T17:32:43Z 生成每个帖子的日期。如何让它看起来像 17:32 18.05.2011 ?
提前谢谢!
答案 0 :(得分:1)
假设您已将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;
}
可选择使用string-&gt;字符串:
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];
}
答案 1 :(得分:0)
您可以创建一个新的Date
,从中获取片段并连接所有内容:
function parse(date) {
var d = new Date(date)
return d.getHours() + ":" + d.getMinutes()
+ " " + d.getDate() + "." + (d.getMonth()+1)
+ "." + d.getFullYear();
}