मान लें कि मेरे पास एक तिथि है जिसे मैं संस्कृति-परिवर्तनीय प्रारूप (आईएसओ 8601) में प्रस्तुत कर सकता हूं।ब्राउज़र पर तारीखों को स्थानीयकृत करें?
मैं 6 जुलाई, 200 9, 3:54 बजे पेरिस में यूटीसी समय, पेरिस में एएमसी 5:54 बजे पेरिस में स्थानीय समय डेलाइट बचत देखता हूं।
2009-07-06T15: 54: 12.000 + 02: 00
ठीक ... वहाँ मार्कअप के किसी भी छिपा मणि कि ब्राउज़र को बताता है एक स्थानीय संस्करण में कि स्ट्रिंग परिवर्तित करने के लिए नहीं है यह?
निकटतम समाधान जावास्क्रिप्ट की दिनांक का उपयोग कर रहा है .prototype.toLocaleString()। यह निश्चित रूप से एक अच्छी नौकरी करता है, लेकिन यह कई तिथियों में फिर से शुरू हो सकता है, और यह जावास्क्रिप्ट पर निर्भर करता है।
क्या कोई HTML, CSS, XSLT, या अन्यथा अर्थपूर्ण मार्कअप है कि कोई ब्राउज़र पहचान लेगा और स्वचालित रूप से सही स्थानीय स्ट्रिंग प्रदान करेगा?
संपादित:
विधि मैं वर्तमान में उपयोग कर रहा हूँ एक स्थानीय तार के साथ किसी HTML तत्व में पाठ की जगह है:
के साथ शुरू:
<span class="date">2009/07/06 15:54:12 GMT</span>
जावास्क्रिप्ट का उपयोग करना (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());
}
व्यावहारिक दृष्टिकोण से, यह जावास्क्रिप्ट चलाते समय टेक्स्ट को "फ्लैश" नए मान में बनाता है, और मुझे यह पसंद नहीं है।
सिद्धांतों के दृष्टिकोण से, मुझे नहीं लगता कि हमें ऐसा करने की आवश्यकता क्यों है - ब्राउज़र को मुद्रा, तिथियों, संख्याओं जैसे मानक चीजों को स्थानीयकृत करने में सक्षम होना चाहिए, जब तक हम इसे चिह्नित करते हैं।
एक अनुवर्ती प्रश्न: - क्लाइंट की सेटिंग के अनुसार एक मानक डेटा आइटम ले, और उसे फ़ॉर्मेट क्यों ब्राउज़रों/वेब इस तरह के एक सरल सुविधा नहीं है?
मुझे नहीं पता कि सीधे ऊपर मार्कअप भाषाओं का उपयोग करके ऐसा करने के लिए वैसे भी है। मुझे यकीन है कि आप कुछ स्क्रिप्ट का उपयोग करने जा रहे हैं। – Peter