假設我有一個日期,我可以在文化不變的格式(ISO 8601)中表示。在瀏覽器上本地化日期?
我會在2009年7月6日下午3點54分在巴黎當地時間下午5:54觀察夏令時在巴黎UTC時間。
2009-07-06T15:54:12.000 + 02:00
OK ......是有標記的任何隱藏的寶石,將告訴瀏覽器這個字符串轉換成的本地化版本它?
最接近的解決方案是使用Javascript的Date.prototype.toLocaleString()。它確實做得很好,但迭代大量日期可能會很慢,並且依賴於Javascript。
是否有HTML,CSS,XSLT或其他語義標記,瀏覽器會識別並自動呈現正確的本地化字符串?
編輯:
我現在使用的是與本地化的字符串替換HTML元素的文本的方法:
與開始:
<span class="date">2009/07/06 15:54:12 GMT</span>
使用JavaScript(用jQuery ):
var dates = $("span.date", context);
// use for loop instead of .each() for speed
for(var i=0,len=dates.length; i < len; i++) {
// parse the date
var d = new Date(dates.eq(i).text());
// set the text to the localized string
dates.eq(i).text(d.toLocaleString());
}
從實際的角度來看,當Javascript運行時,它會將文本「flash」變爲新值,而我不喜歡它。
從原理的角度來看,我不明白爲什麼我們需要這樣做 - 瀏覽器應該能夠本地化標準的東西,如貨幣,日期,數字,只要我們標記爲這樣。
一個跟進的問題:爲什麼瀏覽器/網絡沒有這麼簡單的功能 - 以一個標準的數據項,並格式化根據客戶端的設置?
我不知道有無論如何使用直接標記語言來做到這一點。我很肯定你會使用一些腳本。 – Peter 2009-07-06 19:53:38