2013-05-13 30 views
4

爲什麼以下代碼不會將我的日期輸出到字符串!?JavaScript Date.toString()基數參數錯誤

var d1 = Date.parse('10/29/1990 12:00:00 AM'); 
console.log(d1.toString('dd/MM/yyyy')); 

的錯誤是:

Uncaught RangeError: toString() radix argument must be between 2 and 36

只是想格式化日期...

+1

JavaScript日期不能被格式化,除非你試圖使用一些奇特的附加庫(在這種情況下,它似乎沒有工作:-) – Pointy 2013-05-13 16:45:47

+2

你試過[datejs](http ://www.datejs.com/)或者你在使用它嗎? – 2013-05-13 16:46:59

+0

@Pointy我正在看http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript你如何建議我格式化日期? – user1477388 2013-05-13 16:46:59

回答

8

因爲d1不是Date object,但一個號碼。 Date.parse返回毫秒錶示,您需要將其輸入new Date或直接使用Date構造函數。

而且由於JavaScript沒有本地日期格式化功能,也僅僅是實現相關的toStringtoLocalString和標準化toISOStringtoUTCString(雖然舊的IE瀏覽器不支持)。相反,您必須通過獲取單個組件並連接它們來手動執行格式設置。幸運的是,there's a bunch of libaries幫助你。

2

中的JavaScript Date.prototype.toString方法不帶任何參數(如格式化和這樣)。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toString

使用Date.prototype.toLocaleDateString可能幫助:d1.toLocaleDateString('en')對我的作品,但檢查出所有的精細打印位置:

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString

+0

這不是他正在調用的日期'toString'方法... – Bergi 2013-05-13 18:57:04