Javascript 重新格式化日期字符串

Javascript 重新格式化日期字符串,javascript,regex,Javascript,Regex,如果输入像“2011年8月30日星期二11:47:14 GMT-0300”,我希望输出像“MMM DD YYYY hh:mm” 用JavaScript做这件事的简单方法是什么?检查哪些方法将字符串解析为UNIX时间戳,然后您可以根据需要对其进行格式化。通过JS,您可以尝试将其转换为日期对象,然后提取相关位并使用它们: var d = new Date ("Tue Aug 30 2011 11:47:14 GMT-0300") d.getMonth(); // gives you 7, so yo

如果输入像
“2011年8月30日星期二11:47:14 GMT-0300”
,我希望输出像
“MMM DD YYYY hh:mm”


用JavaScript做这件事的简单方法是什么?

检查哪些方法将字符串解析为UNIX时间戳,然后您可以根据需要对其进行格式化。

通过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
为了简化它,您可以使用以下库

通过正则表达式:

/[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

如果你不介意使用图书馆,请使用。使用Datejs,您可以执行以下操作:

new Date ("Tue Aug 30 2011 11:47:14 GMT-0300").toString('MMM dd yyyy hh:mm');
示例函数:

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()));
函数解析日期(d){
var m_name=新数组(“一月”、“二月”、“三月”,
“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“十月”、“十一月”、“十二月”);
var curr_day=d.getDate();
var curr_hours=d.getHours();
var curr_minutes=d.getMinutes();
如果(当前日<10){
当前日期='0'+当前日期;
}
如果(当前小时数<10){
当前小时数='0'+当前小时数;
}
如果(当前分钟<10){
当前分钟数='0'+当前分钟数;
}
返回值(m_名称[d.getMonth()]+''+curr_day+'+d.getFullYear()+'+curr_hours+':'+curr_minutes);
}
警报(解析日期(new Date());

或者查看一个更通用的日期格式化函数

您不需要正则表达式来解析日期字符串,只需向日期对象查询年、月、日等。有关更多信息,请参阅。另外,请查看。
var output=“MMM DD yyy hh:mm”*ducks*如果我从SharePoint这样的数据库中抓取所述日期,*在预先制作的沉降物保险库中找到污点*并且格式为yyyy dd MM HH:MM:ss:SSSS,以下哪种解决方案最有效?