2014-01-26 31 views
2

我在提交日期時面臨JavaScript問題。如果我提交年份爲0001或0798的日期,js會將其轉換爲1,789,我可以提交年份爲0001或0789或任何年份嗎?提交年份爲coffeescript日期問題爲0001

在螢火蟲控制檯,你可以試試看這個。

例如:d =新的日期

Sun Jan 26 2014 18:35:49 GMT+0530 (IST) 
d.setFullYear(0001) 
-62133389650691 
d 
Fri Jan 26 1 18:35:49 GMT+0530 (IST) 

請幫助我。

+0

編輯我的文章並用javascript標記也..我可以做什麼來完成? – user2986573

+0

它可能有助於[閱讀ECMA-262](http://ecma-international.org/ecma-262/5.1/#sec-15.9.1.1)關於Date對象及其工作方式。 – RobG

回答

1

日期的年份不是字符串,它是的數字

Date#toString返回的字符串沒有(好奇地)由規範指定。它可以是任何引擎想要的。某些引擎(例如Chrome中的V8)輸出的數據量與所需的一樣多,因此可以使用1789201412487。畢竟,沒有什麼特別的東西讓他們四位數字長;我們生活在9000年的時間裏(1000 - > 9999),在這個時間裏我們的西曆(特別是公曆)有四位數字。

如果你想要一個特定格式的字符串(除了接近ISO格式的ES5規範通過toISOString添加,在支持它的引擎上),你必須自己格式化它(或者使用像附加庫一樣MomentJS或類似的)。

+0

但在這裏我需要一個日期對象而不是一個string.string意味着我可以做到這一點。所以沒有簡單的方法來做到這一點? – user2986573

+0

@ user2986573:查看答案的第一行:年份是*號*,而不是字符串。數字就是這樣。你給引擎的值是'1'或'789'。向前面添加零是*格式*(基於文本,例如字符串)的概念。因此,如果您的目標是將「年份」實例的年份設置爲「1」或「789」,那麼您已經實現了該目標。 (實際上,年份數字甚至沒有存儲在日期對象中,它從它所保存的值中計算出年份數字,這是從格林威治標準時間1970年1月1日午夜開始的一個毫秒偏移值[在先前年份爲負的數字到1970年]。) –

相關問題