2014-02-25 35 views
6

時刻(「05/1/11」)。toString()返回「2011年5月1日星期一」,並非如預期的那樣。即將到來的年份JS默認爲1900而不是2000年?

Moment.js documentation我看到「2位數年(如果大於68將返回1900年,否則2000年)」多次(年,周和ISO年)。

我希望在分析沒有格式的日期時默認遵循這一點,但事實並非如此。這是一個功能嗎?無論如何,是否有辦法強制它以這種方式行事(2000年如果少於68年)?

我需要解析自由形式的用戶輸入。它可能是2011年7月5日11或7月6日的5/1/11。因此,我希望傳入的唯一格式是年份字段,並且只有在未找到四位數年份用戶輸入。

回答

3

如果您未指定格式字符串,則解析由瀏覽器(即new Date(string))處理,而不是由Moment處理;請參閱文檔中的文檔moment(string)。如果您想要Moment進行解析(並應用> 68的規則),則需要提供格式字符串。

var test = moment("05/1/11", "MM/D/YY").toString(); 
$('#date').append(test); 

http://jsfiddle.net/WBDDc/

輸出:

Sun May 01 2011 00:00:00 GMT-0400 
+1

噢,我的,我不希望瀏覽器解析我的日期!現在我必須測試所有的瀏覽器......任何人都知道任何不同的日期解析庫,不需要格式,但會在所有瀏覽器中工作相同? – gort

相關問題