2013-04-25 83 views
10

有什麼辦法在JavaScript中獲取系統短日期格式?JavaScript - 獲取系統短日期格式

例如系統的短日期是否爲美式格式,例如。 m/d/Y或在歐洲例如。 d/M/Y

請注意: 這不是格式化日期或基於地理位置計算它,而是從OS /系統

+0

你是問你是否能找出用戶在其中一個他們屏幕的右下角?或者你問用戶*應該根據他們的位置詢問哪一個? – George 2013-04-25 08:40:43

+0

我不這麼認爲 – 2013-04-25 08:41:13

+0

嗨F4r-20。是的,我的意思是默認系統的時間 - 時鐘也使用它。 – WooDzu 2013-04-25 08:44:48

回答

3

經過少量研究,我得出結論,從技術上講,不可能獲得區域設置 - 通過這種日期格式 - 但您可以做其他幾件事。挑選其中一個選項:
一)已經提到-and outdated- 「的toLocaleString()」 函數:

var myDate = new Date(1950, 01, 21, 22, 23, 24, 225); 
var myDateFormat = myDate.toLocaleString(); 
alert (myDateFormat);

問題:
1)你不能 「myDateFormat.replace」 來獲得日期掩碼根據語言環境(例如英語中的「February」,但是希臘語中的「Φεβρουάριος」以及誰知道例如Klingon中的內容),月份不會在字符串中存儲爲「01」,「02」等。
2)在不同瀏覽器上的行爲不同
3)在不同的操作系統和瀏覽器版本上有不同的行爲...

b)使用toISOString()函數代替toLocaleString()。您不會獲得區域日期掩碼,但會得到一個日期,從中可以知道日期的哪一部分(即「月」或「日」在哪個字符串中)。您還可以使用getUTCDate(),getUTCMonth()getUTCDay()功能。您仍然無法知道客戶使用的日期格式,但可以知道您在獲取日期時使用的年/月/日/等;使用上面的code來測試我在這裏提到的函數,看看你能期待什麼。

c)讀取 Inconsistent behavior of toLocaleString() in different browser文章,並使用(恕我直言偉大的)解決方案描述有

+0

嗨馬克,謝謝你的答案。我分享你的觀點,但這仍然繼續在瀏覽器 – WooDzu 2013-04-25 09:26:31

+0

如果你的意思是選項'c'是的,你是對的,這個問題被視爲瀏覽器問題,但解決方案更通用。另一方面,如果我是你,我會和'b'一起去。如果必須知道日期格式掩碼,還有另一種選擇:「myDateFormat.replace(」1950「,」yyyy「);」等等 - 但是在一個月內,您需要找到字符串開始結尾並用「mm」 - 這使得你的腳本有點太複雜,甚至可能爲了你的目標... – 2013-04-25 09:31:01

+0

唯一的問題是,如果例如我的系統時鐘,Excel電子表格和其他一些應用程序都使用d/m/Y和我的瀏覽器會因爲某些原因檢測到'en-US'(是的,它會這樣),它會使用en-US格式,即m/d/Y – WooDzu 2013-04-25 10:15:38

0

越來越格式這是不可能的質疑。您可以從用戶瀏覽器獲取文化,並使用一些js庫將其轉換爲正確的日期格式。 http://code.google.com/p/datejs/

+0

請參閱我的問題上的註釋 – WooDzu 2013-04-25 08:56:18

+1

答案是否定的。這是不可能的,只是給你一些提示。 :) – Reno 2013-04-25 09:11:40

-1

使用Date.CultureInfo.formatPatterns.shortDate

+0

嗨。只是查了一下。您從哪裏購買CultureInfo? Firefox和Chrome中的Date對象沒有它 – WooDzu 2013-11-11 21:05:35

相關問題