我工作的Javascript日期格式,我這是在20 Jun 13
形式的一個日期,我 需要將其轉換成Date
對象,我用Date.parse()
返回1 June 2013
。JavaScript的日期使用的日期格式字符串
var frmDt = '20 Jun 13';
alert(Date.parse(frmDt));
哪個解決方案?
我工作的Javascript日期格式,我這是在20 Jun 13
形式的一個日期,我 需要將其轉換成Date
對象,我用Date.parse()
返回1 June 2013
。JavaScript的日期使用的日期格式字符串
var frmDt = '20 Jun 13';
alert(Date.parse(frmDt));
哪個解決方案?
我發現日期處理在JavaScript中變得非常容易,通過使用momentJs,它允許您構造moment
對象,它以一種非常自由的方式實際包裝原生javascript Date對象,傳遞多種不同格式的字符串,並且實際上能夠獲取日期對象,這種方式比Date.parse()
更可靠。
您還可以傳遞日期格式字符串,所以您的情況將類似moment('20 Jun 13', 'DD MMM YY')
。
我已將我發表的評論中的代碼轉化爲一個函數,使得日,月,日不區分大小寫,分隔符可以是任何字符(只要有一個)。因此,任何格式DD MMM YY或日/月/日或d MMM YY將工作:
function toDate(str){
var months={
"JAN":1,
"FEB":2,
//... other months
"JUN":6,
//... other months
"DEC":12
}
var r=/^(\d{1,2}).(\w{3}).(\d{2}$)/;
if(r.test(str)===false){
throw new Error("Invalid date string:"+str);
}
var replaceFunction=function(){
var years=parseInt(arguments[3],10);
var m=months[arguments[2].toUpperCase()];
if(typeof m==="undefined"){
throw new Error("Invalid month name:"+arguments[2]);
}
var days=arguments[1]
m=(m<9)?"0"+m:m;
days=(days.length===1)?days="0"+days:days;
years=(years>50)?years="19"+years:"20"+years;
return m+"/"+days+"/"+years;
};
return new Date(str.replace(r,replaceFunction));
}
console.log(toDate("20 Jun 13"));
d3.js有解析和格式化日期非常強大的功能。見https://github.com/mbostock/d3/wiki/Time-Formatting。
確實包含圖表繪圖庫是解析日期的最佳方法,處理日期解析和格式? – Raibaz
不,我不確定,但是,嘿,我們生活在一個人們包含100K庫的世界中,以獲取DOM操作的一些語法糖。 – 2013-06-27 21:00:51
我認爲這可能有所幫助:http://stackoverflow.com/questions/17267230/how-to-convert-the-following-string-to-the-correct-string/17267449#17267449 – HMR
不直接,但它可能幫助:http://www.datejs.com/ –
您需要顯示您使用的確切代碼以及示例輸入。 – JJJ