2012-08-29 162 views
1

我想以格式ddMMyyhhmm解析日期(例如,2804121530表示2012年4月28日下午3:30),以javascript日期()對象。以給定格式解析字符串

是否有任何oneliner解決方案?我在尋找的那種東西:

var date = Date.parse('2804121530', 'ddMMyyhhmm'); 

var date = new Date('2804121530', 'ddMMyyhhmm'); 

感謝您的幫助!

+2

沒有這樣的內置功能,但你可以看看[這個問題](http://stackoverflow.com/questions/476105/how-can-i-convert-string-to-datetime-with-format-specification-in-javascript) – Witcher42

+1

Hi bellow鏈接可能對您有用 http://stackoverflow.com/問題/ 1056728/formatting-a-date-in-javascript –

回答

2

這裏有用的圖書館是DateJs。只需添加一個參考:

<script src="http://datejs.googlecode.com/files/date.js" 
     type="text/javascript"></script> 

,並使用Date.parseExact

var dateStr = '2804121530'; 
var date = Date.parseExact(dateStr, 'ddMMyyHHmm'); 
0
(new Date(1381344723000)).toUTCString() 

糾正我,如果「M撥錯......

+0

James擁有*字符串*「'2804121530' ',所以我不認爲這有多大幫助。 – Kobi

+0

對,我想這個參數是自時代以來的秒/毫秒。在我的情況下,這是一個格式爲ddMMyyhhmm的日期字符串。 – James

2

對於一個快速的解決方案,你可以制動該字符串成片,並從這些作品

function myDateFormat(myDate){ 
    var day = myDate[0]+''+myDate[1]; 
    var month = parseInt(myDate[2]+''+myDate[3], 10) - 1; 
    var year = '20'+myDate[4]+''+myDate[5]; 
    var hour = myDate[6]+''+myDate[7]; 
    var minute = myDate[8]+''+myDate[9]; 
    return new Date(year,month,day,hour,minute,0,0); 
} 

var myDate = myDateFormat('2804121530'); 

或傻笑解決方案創建日期:

function myDateFormat(myDate){ 
    return new Date(('20'+myDate.slice(4,6)),(parseInt(myDate.slice(2,4), 10)-1),myDate.slice(0,2),myDate.slice(6,8),myDate.slice(8,10),0,0); 
} 
var myDate = myDateFormat('2804121530'); 
+1

您需要在本月的「+ 1」(它基於零),所以您必須至少解析(抱歉 - -1':/')。此外,你可以使用[string.slice](http://stackoverflow.com/q/2243824/7586)刪除一些醜陋。 – Kobi

+2

加了'-1' :),因爲'Date'從0開始 –