根据"Tue Aug 30 2011 11:47:14 GMT-0300"
之类的输入,我希望输出"MMM DD YYYY hh:mm"
。
在JavaScript中使用它的简单方法是什么?
答案 0 :(得分:3)
通过 JS ,您可以尝试将其转换为日期对象,然后提取相关位并使用它们:
var d = new Date ("Tue Aug 30 2011 11:47:14 GMT-0300")
d.getMonth(); // gives you 7, so you need to translate that
为了简化它,您可以使用像date-js
这样的库通过正则表达式:
/[a-zA-Z]{3} ([a-zA-Z]{3} \d{2} \d{4} \d{2}:\d{2})/
应该可以解决问题。
var r = "Tue Aug 30 2011 11:47:14 GMT-0300".match(/^[a-zA-Z]{3} ([a-zA-Z]{3} \d{2} \d{4} \d{2}:\d{2})/);
alert(r[1]); // gives you Aug 30 2011 11:47
答案 1 :(得分:2)
签出Date.parse
,将字符串解析为UNIX时间戳,然后您可以根据需要对其进行格式化。
答案 2 :(得分:2)
如果您不介意使用库,请使用Datejs。使用Datejs,您可以:
new Date ("Tue Aug 30 2011 11:47:14 GMT-0300").toString('MMM dd yyyy hh:mm');
答案 3 :(得分:1)
示例函数:
function parseDate(d) {
var m_names = new Array("Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec");
var curr_day = d.getDate();
var curr_hours = d.getHours();
var curr_minutes = d.getMinutes();
if (curr_day < 10) {
curr_day = '0' + curr_day;
}
if (curr_hours < 10) {
curr_hours = '0' + curr_hours;
}
if (curr_minutes < 10) {
curr_minutes = '0' + curr_minutes;
}
return ( m_names[d.getMonth()] + ' ' + curr_day + ' ' + d.getFullYear() + ' ' + curr_hours + ':' + curr_minutes);
}
alert(parseDate(new Date()));
或者查看http://blog.stevenlevithan.com/archives/date-time-format以获取更通用的日期格式化功能