अंतर्राष्ट्रीय स्थलों के लिए प्रारूप तिथियों का एक निश्चित तरीका
दिनांक प्रारूप क्षेत्र और भाषा के साथ भिन्न होते हैं, इसलिए यह हमेशा मददगार होता है, यदि हम उपयोगकर्ताओं को अपनी भाषा और क्षेत्र के लिए दिनांक प्रदर्शित करने का एक तरीका खोज सकें.
दिसंबर, 2012 में वापस, ECMA ने अंतर्राष्ट्रीयकरण एपीआई के विनिर्देशों को जावास्क्रिप्ट के लिए जारी किया। अंतर्राष्ट्रीयकरण एपीआई हमें भाषा और कटलरी विनिर्देश के अनुसार कुछ डेटा प्रदर्शित करने में मदद करता है। इसका उपयोग किया जा सकता है मुद्राओं, समय क्षेत्रों की पहचान करें और अधिक.
इस पोस्ट में हम देखेंगे दिनांक स्वरूपण इस एपीआई का उपयोग कर.
उपयोगकर्ता के स्थान को जानें
उपयोगकर्ता के पसंदीदा स्थान के अनुसार तारीख दिखाने के लिए, पहले हमें यह जानना होगा कि वह पसंदीदा स्थान क्या है। वर्तमान में यह जानने का मूर्ख तरीका है कि उपयोगकर्ता से क्या पूछना है; उपयोगकर्ताओं को वेबपृष्ठ में अपनी पसंदीदा भाषा और क्षेत्र सेटिंग चुनने दें.
लेकिन, अगर वह विकल्प नहीं है तो आप इसकी व्याख्या कर सकते हैं स्वीकार करें-भाषा
शीर्ष लेख का अनुरोध करें या पढ़ें navigator.language
(क्रोम और फ़ायरफ़ॉक्स के लिए) या navigator.browserLanguage
(IE के लिए) मान.
कृपया जान लें कि उन सभी विकल्पों में से ब्राउज़र UI की पसंदीदा भाषा वापस नहीं आती है.
var language_tag = window.navigator.browserLanguage || window.navigator.language || "एन"; // 'एन-जीबी' जैसे भाषा टैग लौटाता है
अंतर्राष्ट्रीयकरण एपीआई के लिए जाँच करें
यह जानने के लिए कि ब्राउज़र अंतर्राष्ट्रीयकरण एपीआई का समर्थन करता है या नहीं, हम वैश्विक वस्तु की उपस्थिति की जांच कर सकते हैं Intl
.
अगर (window.hasOwnPropertyâ €‹("Intl") && टाइपऑफ़ Intl === "ऑब्जेक्ट") // अंतर्राष्ट्रीयकरण API मौजूद है, हमें उसका उपयोग करने दें
Intl वस्तु
Intl
अंतर्राष्ट्रीयकरण एपीआई का उपयोग करने के लिए एक वैश्विक वस्तु है। इसके तीन गुण हैं जो तीन वस्तुओं के लिए निर्माता हैं कोलेटर
, संख्या स्वरूप
, तथा DateTimeFormat
.
हम जिस वस्तु का उपयोग करेंगे वह है DateTimeFormat
जो हमें विभिन्न भाषाओं के अनुसार दिनांक समय प्रारूपित करने में मदद करेगा.
DateTimeFormat वस्तु
DateTimeFormat
कंस्ट्रक्टर दो वैकल्पिक तर्क लेता है;
स्थानों
- उदाहरण के लिए, भाषा के टैग का प्रतिनिधित्व करने वाले स्ट्रिंग या स्ट्रिंग की एक सरणी; “डे” जर्मन भाषा के लिए, “en-GB” यूनाइटेड किंगडम में इस्तेमाल होने वाली अंग्रेजी के लिए। यदि किसी भाषा टैग का उल्लेख नहीं किया गया है, तो डिफ़ॉल्ट लोकल रनटाइम का होगा.विकल्प
- एक ऑब्जेक्ट जिसका गुण फ़ॉर्मेटर को अनुकूलित करने के लिए उपयोग किया जाता है। इसके निम्नलिखित गुण हैं:
संपत्ति | विवरण | संभावित मान |
दिन | महीने का दिन | “2 अंकों”, “संख्यात्मक” |
युग | युग तिथि में गिर जाता है, पूर्व: ई.पू. | “संकीर्ण”, “कम”, “लंबा” |
formatMatcher | प्रारूप मिलान के लिए उपयोग किया जाने वाला एल्गोरिदम | “बुनियादी”, “सर्वोत्तम योग्य”[चूक] |
घंटा | समय में घंटे का प्रतिनिधित्व करता है | “2 अंकों”, “संख्यात्मक” |
hour12 | 12 घंटे का प्रारूप बताता है (सच ) या 24 घंटे का प्रारूप (असत्य ) | सच , असत्य |
localeMatcher | स्थानीय मिलान के लिए उपयोग किया जाने वाला एल्गोरिदम | “देखो”, “सर्वोत्तम योग्य”[चूक] |
मिनट | समय में मिनट | “2 अंकों”, “संख्यात्मक” |
महीना | एक साल में महीना | “2 अंकों”, “संख्यात्मक”, “संकीर्ण”, “कम”, “लंबा” |
दूसरा | समय में सेकेंड | “2 अंकों”, “संख्यात्मक” |
समय क्षेत्र | आवेदन करने का समय क्षेत्र | “यु.टी. सी”, डिफ़ॉल्ट रनटाइम टाइम ज़ोन है |
timeZoneName | दिनांक का समय क्षेत्र | “कम”, “लंबा” |
काम करने के दिन | सप्ताह में दिन | “संकीर्ण”, “कम”, “लंबा” |
साल | तिथि का वर्ष | “2 अंकों”, “संख्यात्मक” |
उदाहरण:
var formatter = new Intl.DateTimeFormat ('एन-जीबी'); / * एक फॉर्मेटर लौटाता है जो यूके में एक तारीख को प्रारूपित कर सकता है अंग्रेजी प्रारूप प्रारूप * /
var विकल्प = कार्यदिवस: 'संक्षिप्त'; var फ़ॉर्मेटर = नया Intl.DateTimeFormat ('एन-जीबी', विकल्प); / * एक फॉर्मैटर लौटाता है जो यूके अंग्रेजी तिथि प्रारूप में एक तारीख को प्रारूपित कर सकता है * सप्ताह के दिनों के साथ-साथ गुरुवार के लिए 'थू' जैसे लघु संकेतन में * /
प्रारूप समारोह
का उदाहरण है DateTimeFormat
ऑब्जेक्ट में एक प्रॉपर्टी एक्सेसर (गेट्टर) होता है जिसे कहा जाता है प्रारूप
जो एक फ़ंक्शन देता है जो स्वरूपित करता है a दिनांक
पर आधारित स्थानों
तथा विकल्प
में पाया गया DateTimeFormat
उदाहरण.
फ़ंक्शन एक लेता है दिनांक
वस्तु या अपरिभाषित
एक वैकल्पिक तर्क के रूप में और रिटर्न ए तार
अनुरोधित दिनांक प्रारूप में.
ध्यान दें: यदि तर्क या तो है अपरिभाषित
या प्रदान नहीं किया गया है तो इसका मूल्य वापस मिलता है Date.now ()
अनुरोधित दिनांक प्रारूप में.
यहाँ वाक्यविन्यास है:
नया Intl.DateTimeFormat () स्वरूप। () // रनटाइम तिथि प्रारूप में वर्तमान तिथि वापस कर देगा
और अब एक सरल दिनांक स्वरूपण कोड देते हैं.
आइए हम भाषा बदलें और आउटपुट देखें.
अब, विकल्पों पर गौर करने का समय आ गया है.
toLocaleDateString तरीका
उपर्युक्त उदाहरणों में दिखाए गए फ़ॉर्मैटर का उपयोग करने के बजाय, आप भी उपयोग कर सकते हैं Date.prototype.toLocaleString
उसी तरह से स्थानों
तथा विकल्प
तर्क, वे समान हैं लेकिन इसका उपयोग करने की सिफारिश की जाती है DateTimeFormat
ऑब्जेक्ट जब आपके आवेदन में बहुत सारी तारीखों के साथ काम कर रहा हो.
var mydate = नई तिथि ('2015/04/22'); var विकल्प = कार्यदिवस: "संक्षिप्त", वर्ष: "संख्यात्मक", महीना: "लंबा", दिन: "संख्यात्मक"; console.log (mydate.toLocaleDateString ( 'en-GB', विकल्प)); // रिटर्न "बुध, 22 अप्रैल 2015"
अगर टेस्ट स्थानों समर्थित हैं
समर्थित के लिए जाँच करने के लिए स्थानों
, हम विधि का उपयोग कर सकते हैं supportedLocalesOf
का DateTimeFormat
वस्तु। यदि कोई भी स्थान समर्थित नहीं है, तो यह सभी सहायक स्थानों की एक सरणी देता है या खाली सरणी देता है.
परीक्षण के लिए, हमें एक डमी लोकेल जोड़ना चाहिए “बकवास” जाँच की जाने वाली स्थानों की सूची में.
कंसोल.लॉग (Intl.DateTimeFormat.supportedLocalesOf (["zh", "blah", "faes-pes"])); // रिटर्न ऐरे ["ज़ी", "फ़े-पेस"]
ब्राउज़र का समर्थन
अप्रैल 2015 के अंत में, प्रमुख ब्राउज़र अंतर्राष्ट्रीयकरण एपीआई का समर्थन करते हैं.
संदर्भ
- ECMA अंतर्राष्ट्रीय: ECMAScript अंतर्राष्ट्रीयकरण एपीआई विशिष्टता
- IANA: भाषा उपशीर्षक रजिस्ट्री
- नॉर्बर्ट कॉर्नर: ECMAScript अंतर्राष्ट्रीयकरण एपीआई