2013-10-19 194 views

回答

1

Firefox不支持該格式。使用/而不是-,或使用T而不是分隔日期和時間組件的空格。詳情請見this chart

您可能會考慮使用moment.js。你可以像這樣解析一個字符串:

var m = moment("2013-05-27 14:27:37", "YYYY-MM-DD HH:mm:ss"); 

然後你可以使用矩的比較函數。例如:

if (m1.isBefore(m2)) { ... } 

if (m1.isAfter(m2)) { ... } 

您可以閱讀the documentation瞭解更多功能。

+0

momnet.js解決了我的問題 – ahmedsaber111

0

試試這個:

var date = new Date('2013-05-27 14:27:37'); 

這應該給你一個有效Date對象在你的JS工作。

+0

在Firefox上顯示「無效日期」。 – Ryan

+0

@minitech是嗎? http://jsfiddle.net/6Ptmw/ – Joe

+0

是的 – Ryan

1

那麼,你總是可以手動解析它。

var s = "2013-05-27 14:27:37"; 
var m = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.exec(s); 
var date = new Date(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], +m[6]); 
+0

這似乎是湯姆與我合作,但我想知道爲什麼我不能用新的Date();這會更容易,對吧?任何方式感謝您的智能解決方案。 – ahmedsaber111

+0

非常好。 :)就這個特定格式的直接解析器而言,它並沒有比這更好。 –

+0

@ ahmedsaber111:'新日期[需要支持](http://es5.github.io/#x15.9.4.2)的唯一格式是[(或多或少)ISO 8601](http:///es5.github.io/#x15.9.1.15)。所以你不能依靠瀏覽器來支持其他任何東西(比如在這種情況下)。 – Ryan

0

你也可以嘗試通過date.js來推測你的日期,希望這會有所幫助。

+0

如果您使用的是date.js,請確保使用維護的叉子。 [閱讀此](http://stackoverflow.com/tags/datejs/info)。 –

+0

我正在使用Requirejs,這有效嗎AMD – ahmedsaber111

+2

@ ahmedsaber111 - date.js修改了'Date'原型。你可以從require中加載它,但它並不像你想象的那樣。另一方面,Moment.js直接支持AMD,並且不修改'Date'原型。 –

相關問題