2014-06-12 10 views
13

प्रदर्शित करने के लिए Moment.js का उपयोग करके मैं स्ट्रिंग के अंत में टाइमज़ोन प्रदर्शित करने के लिए प्रारूप में z या zz का उपयोग करने का प्रयास कर रहा था और पाया कि यह बहिष्कृत है। जेड और जेडजेड -0700 प्रदर्शित करने के लिए काम करते हैं, लेकिन इसके बजाय मैं इसे पीडीटी दिखाना चाहता हूं।उपयोगकर्ताओं को स्थानीय क्षेत्र संक्षेप

मुझे मिल गया पल-समय क्षेत्र और डेटा फ़ाइल, लेकिन मैं इसे कैसे उपयोग करने के लिए ग्राहक के स्थानीय समय क्षेत्र का निर्धारण करने के यह पता लगाने और प्रदर्शित नहीं कर सकता की तरह कुछ:

2014-05-30T22: 56: 23.967 पीडीटी

बजाय

:

2014-05-30T22: 56: 23,967

यह पल-समय क्षेत्र का उपयोग करने के ईएसटी सीएसटी ... MST पीएसटी निर्धारित करने के लिए संभव है?

+0

स्ट्रिंग (बहुत कम) [* प्रलेखन *] (http://momentjs.com/timezone/docs/) है कि यह एक आउटपुट स्ट्रिंग के समय क्षेत्र स्थापित करने के लिए प्रयोग किया जाता है है, स्वरूपण नहीं की मेरी समझ उदाहरण के लिए 'M.tz (" अमेरिका/टोरंटो ") प्रारूप()।; // "2013-11-18T11: 55: 00-05: 00" '। कई [यूटिलिटीज] (https://bitbucket.org/pellepim/jstimezonedetect) हैं जो टाइमज़ोन ऑफ़सेट के आधार पर उपयोगकर्ता टाइमज़ोन अनुमान लगाने का प्रयास करते हैं और क्या डेलाइट सेविंग मनाई जाती है। हालांकि वे [* आईएएनए टाइमज़ोन वैल्यू *] (http://www.iana.org/time-zones) का उपयोग करके काम करते हैं, ईएसटी जैसे "नागरिक" (संदिग्ध) मूल्य नहीं। – RobG

उत्तर

24

पल-समय क्षेत्र 0.1.0 के रूप में, आप formatting additions का प्रयोग कर एक विशिष्ट समय क्षेत्र का संक्षिप्त नाम पाने के लिए कर सकते हैं:

moment().tz("America/Los_Angeles").format('z'); // PST or PDT 

संस्करण 0.5.0 के रूप में, आप अब guess the user's local time zone कर सकते हैं, जो जब ऊपर तकनीक के साथ संयुक्त, आप निम्न कर सकते हैं: मान लिया जाये कि अनुमान सही था

moment().tz(moment.tz.guess()).format('z'); 

, यह जुड़े संक्षिप्त नाम प्रदर्शित करेगा।

+0

'z' और 'zz' अब कम हो गया है। हम छोटे प्रारूप – mperle

+0

@mperle में टाइमज़ोन कैसे प्राप्त करते हैं - आप अभी भी उनका उपयोग कर सकते हैं, लेकिन केवल क्षण-समय क्षेत्र के साथ। –

0

शायद यह एक अच्छा तरीका नहीं है, लेकिन मैं स्थानीय समय क्षेत्र के लिए अपनी परियोजना में कोई अतिरिक्त स्क्रिप्ट नहीं जोड़ना चाहता था, इसलिए मैंने एक पल ऑब्जेक्ट की जांच की और मुझे नीचे दिए गए कोड द्वारा स्थानीय समय क्षेत्र मिलता है:

var test = momentUpdateDate._d.toString().substring(test.indexOf('(')+1, test.indexOf(')')); 
+1

आपको '_d' का उपयोग नहीं करना चाहिए, बल्कि' .toDate() ', लेकिन फिर भी यह अनुशंसा नहीं की जाती है क्योंकि' toString' के आउटपुट को कार्यान्वयन विशिष्ट है और किसी भी विशेष रूप से स्वरूपित होने की गारंटी नहीं है। अभ्यास में, समय क्षेत्र डेटा कभी-कभी संक्षेप में होता है, कभी-कभी विस्तारित होता है, कभी-कभी अनुपस्थित होता है। –

संबंधित मुद्दे