2013-07-24 41 views
0

當我將值傳遞給新日期時,我得到無效日期。我喜歡將值傳遞給新日期給出無效日期

 var s1 = moment("20.06.2013 09:11:00", "DD.MM.YYYY HH:mm:ss"); 
     var s2 = s1.format("YYYY.MM.DD HH:mm:ss"); 
     var dt1 = s2.replace(/[-,.:\s]/g, ","); 
     var dt2 = new Date(dt1); 

做在調試模式下在谷歌瀏覽器的時候,我得到DT1的值作爲「2013,06,20,09,11,00」。但是當我輸入像new Date(2013,06,20,09,11,34)那麼我得到的日期。

我也嘗試刪除雙引號,但它不刪除雙引號。我該怎麼做才能擺脫這個錯誤。在代碼

+0

你傳遞一個字符串 - 「2013,06,20,09 ,11,34「 - 到'新日期',而不是多個參數。 – kalley

+0

@kalley如何做到這一點呢? – Happy

回答

2

如果你是一個Date之後,卻想用moment.js解析,那麼就這樣做:

var m = moment("20.06.2013 09:11:00", "DD.MM.YYYY HH:mm:ss"); 
var dt = m.toDate(); 
+0

這工作。是否有可能將GMT時間添加到輸出。我確實喜歡 var dt = m.toDate()。getTime()我得到的輸出是1371712260000.我想輸出爲1371712260000 + 0200 – Happy

+0

你可以使用'm.valueOf()+ m.format('ZZ')' - 但我會問任何預計這種格式的地方。通常當偏移量與一個值配對時,意味着偏移量已經*反映了該值。但是幾秒或幾毫秒的時間戳幾乎總是以UTC表示。所以這些擔憂是相互矛盾的。 –

+0

我想通過json日期格式。這就是爲什麼我需要添加這個+0200,否則我得到2個小時的時間 – Happy

0

作爲Kalley建議的,使用參數:

var s1 = moment([2013,06,20,09,11,34]); 

編輯補充:在JScript,矩()採用的陣列格式爲[Y,M,d,H,M,S] 。來源:http://momentjs.com/docs/

相關問題