2014-03-27 85 views
1

我在嘗試使用JavaScript格式化日期時遇到了一些問題。這裏是代碼:JavaScript中使用toLocaleDateString的日期格式

var date = new Date(tenderClosingDate); 
         var d = new Date(date.toLocaleDateString()); 
         tenderClosingDate = ((d.getUTCMonth() + 1) + "/" + (d.getUTCDate() + 1) + "/" + (d.getUTCFullYear())); 

通過使用此代碼,11/29/2012應該工作,但不知何故它返回我NaN。有什麼方法可以將其格式化爲dd/mm/yyyy?

在此先感謝。

+0

我很困惑你爲什麼爲Date對象創建中間'd'變量,當它的值應該與'date'相同時。 –

+0

你能否詳細說明一下?什麼是NaN?爲什麼這段代碼不會做你想要的:tenderClosingDate =((d.getUTCDate()+ 1)+「/」+(d.getUTCMonth()+ 1)+「/」+(d.getUTCFullYear())); ? – simich

+0

創建後立即使用console.log(日期)。 如果'tenderClosingDate'的初始值不能被正確解析,它就會從開始就出錯。 – UweB

回答

0

你似乎有個約會...和你想的方式,瀏覽器永遠不會認識到創建自該日起新的日期......

只需使用date.getUTCMonth()

另外請注意,雖然這個月是基於0的(用於像['Jan','Feb',...]這樣的數組),但日期並非如此,您最終會看起來像1月32日那樣愚蠢。

+0

因爲我的日期是從一些數據中檢索出來的,我試圖解析它們 –

0

此代碼僅適用於原始值tenderClosingDate包含自1970年1月1日00:00:00 UTC(Unix Epoch)以來的過去的毫秒數或表示日期的字符串值。如果tenderClosingDate的原始值是一個空字符串,不能被Date.parseundefined解析的日期字符串,則結果將包含NaN s。