2013-05-02 55 views
2

我的操作系統(Windows)的語言是丹麥語,我的瀏覽器的語言也是如此。javascript Date對象使用哪些文化?

當我試圖解析丹麥格式像這樣的日期(DD-MM-YYYY):

var x = "18-08-1989" 
var date = new Date(x); 

我從JavaScript的日期是錯誤的(我想1989年8月的18'th) 。當我將這個字符串轉換爲英文,並解析它時,它會返回正確的日期。

使用JS Date對象時,日期字符串的格式是否必須始終爲:yyyy-MM-dd?

+0

「18-08-89」 是不是在 「DD-MM-YYYY」 格式,你嘗試過 「18-08-1989」? – darma 2013-05-02 12:57:52

+0

http://blog.stevenlevithan.com/archives/date-time-format – xyz 2013-05-02 12:58:35

+0

我改正了我的問題,是的,我已經嘗試過 – Kenci 2013-05-02 12:59:29

回答

6

在基本使用沒有指定一個區域,在默認的語言環境,並使用默認選項格式化字符串回。

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); 

// toLocaleString without arguments depends on the implementation, 
// the default locale, and the default time zone 
date.toLocaleString(); 
// "12/11/2012, 7:00:00 PM" if run in en-US locale with time zone America/Los_Angeles 

使用本地化

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); 

// formats below assume the local time zone of the locale; 
// America/Los_Angeles for the US 

// US English uses month-day-year order 
alert(date.toLocaleString("en-US")); 
// "12/19/2012, 7:00:00 PM" 

// British English uses day-month-year order 
alert(date.toLocaleString("en-GB")); 
// "20/12/2012 03:00:00" 

// Korean uses year-month-day order 
alert(date.toLocaleString("ko-KR")); 
// "2012. 12. 20. 오후 12:00:00" 
+0

你有一個想法,當我的瀏覽器和操作系統在丹麥語中時,爲什麼默認語言環境是英語? :) – Kenci 2013-05-02 13:03:55

+1

@Kenci日期不執行區域依賴分析,他們只接受兩種格式之一的字符串。查看[Date.parse的MDN條目](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse)。 – 2013-05-02 13:04:50

+1

+1用於回答問題,而不僅僅是發佈鏈接。 – 2013-05-02 13:05:04