<p>क्षण.टुक (स्ट्रिंग) स्थानीय समय के रूप में ISO8601 को पार्स करता है जब समय क्षेत्र गायब होता है</p>

को निर्मित 12 अप्रैल 2012  ·  24टिप्पणियाँ  ·  स्रोत: moment/moment

यह टिप्पणी देखें: https://github.com/timrwood/moment/issues/272#issuecomment -5095486

सबसे उपयोगी टिप्पणी

मुझे UTC कार्यक्षमता के चारों ओर भ्रम की अभिव्यक्ति को जोड़ना चाहिए। क्षण की सबसे सहज अपेक्षा .utc () यह होगा कि यह UTC समय में अब दिनांक / समय का प्रतिनिधित्व करने वाला एक मोमेंट ऑब्जेक्ट लौटाएगा। लेकिन इस चर्चा के अनुसार यह मामला नहीं है और यह सिर्फ ध्वज सेट करता है। यह अभी भी स्पष्ट नहीं है कि झंडा क्या करता है। प्रलेखन में इसका कोई उल्लेख नहीं है, जो इसे अपर्याप्त रूप से अपर्याप्त बनाता है। कृपया इस विषय का स्पष्टीकरण अपने बैकलॉग के उदाहरणों के साथ जोड़ें। धन्यवाद।

सभी 24 टिप्पणियाँ

क्षण.टुक (स्ट्रिंग) स्थानीय समय के रूप में ISO8601 को पार्स करता है जब समय क्षेत्र गायब होता है

यह कैसे ISO8601 कहते हैं ... और EcmaScript 6

मुझे लगता है कि यह moment(string) बहुत अच्छी तरह से लागू होता है, लेकिन moment.utc(string) का उपयोग करते समय, मुझे लगता है कि इसका मतलब यह है कि आप इसे UTC के रूप में चाहते हैं।

moment('2010-10-20T08:40'); // should parse to local time
moment.utc('2010-10-20T08:40'); // should parse to utc time

मुझे एक समस्या हो रही है, मुझे लगता है कि इससे संबंधित है:

मैं इस तिथि को परिवर्तित करने का प्रयास कर रहा हूं: 12-04-2012 (DD-MM-YYYY, UTC में) अपने यूनिक्स टाइमस्टैम्प में।
मैं यह कर रही हूँ:

var date = '12-04-2012';
var mm = moment().utc( date, "DD-MM-YYYY" );
console.log( mm.valueOf() );

यह गलत टाइमस्टैम्प का उत्पादन करता है: 1334670827391
अगर मैं कोशिश करूँ:

console.log( mm.format('DD-MM-YYYY') );

यह परिणाम है: 17-04-2012

a538306 इसे ठीक करता है। 1.6.0 में निकल जाएगा

मैं अभी भी नवीनतम संस्करण में इस मुद्दे को देख रहा हूँ ..

मैं इसमें गुजर रहा हूँ: moment.utc ('2012-12-14T00: 29: 40.276Z') और प्राप्त करना: {_d: Thu Dec 13 2012 18:29:40 GMT-0600 (केंद्रीय मानक समय), _isUTC: सच (थू दिसंबर १३ २०१२ 18:29:40 GMT-0600 (केंद्रीय मानक समय)) .. यह utc समय का उपयोग नहीं कर रहा है, लेकिन मेरा स्थानीय समय क्षेत्र है।

यह वही है जो मुझे 1.7.2 साथ मिल रहा है।

moment.utc('2012-12-14T00:29:40.276Z').format(); // "2012-12-14T00:29:40+00:00"

जब मैं क्रोम में कंसोल पर लिखता हूं तो मेरे लिए (नवीनतम संस्करण) ऐसा होता है:

console.log (moment.utc ( '2012-12-14T00: 29: 40.276Z'));
console.log (moment.utc ( '2012-12-14T00: 29: 40.276Z') प्रारूप ()।);
console.log (moment.utc ( '2012-12-14T00: 29: 40.276Z') todate ()।);

H {_d: Thu Dec 13 2012 18:29:40 GMT-0600 (केंद्रीय मानक समय), _isUTC: true, _a: Array [8], _lang: झूठी, क्लोन: फ़ंक्शन…}

2012-12-14T00: 29: 40 + 00: 00

Thu Dec 13 2012 18:29:40 GMT-0600 (केंद्रीय मानक समय)

यह utc (कोई समय क्षेत्र) में एक नई तारीख नहीं बनाना चाहिए? इसके अलावा पहले कंसोल.लॉग पल ऑब्जेक्ट को cst टाइमज़ोन के साथ दिखाता है और यह utc समय नहीं है।

Thu Dec 13 2012 18:29:40 GMT-0600 वास्तव में 2012-12-14T00:29:40.276Z समान सटीक समय है। वे एक ही समय को प्रदर्शित करने के विभिन्न तरीके हैं। आप चाहें तो निम्न कार्य करके इसे देख सकते हैं।

console.log(moment.utc('2012-12-14T00:29:40.276Z').toDate().toString());
// Thu Dec 13 2012 16:29:40 GMT-0800 (PST)
console.log(moment.utc('2012-12-14T00:29:40.276Z').toDate().toUTCString());
// Fri, 14 Dec 2012 00:29:40 GMT

देशी JS Date पास एक utc बनाम स्थानीय मोड नहीं है, इसमें सिर्फ getUTCHours और getHours जैसे एक्सेसर्स हैं।

Moment.js अमूर्त इन getUTC* बनाम get* utc मोड और स्थानीय मोड के विचार के साथ। यदि क्षण utc मोड में है, तो यह getUTC* विधियों का उपयोग करता है। यदि यह स्थानीय मोड में है, तो यह get* विधियों का उपयोग करता है।

स्पष्टीकरण के लिए धन्यवाद।

मैं उम्मीद कर रहा था और सोचा था कि आइसो मानक का पाप करता है कि जेड का मतलब टाइमजोन नहीं है कि वह यूटीसी के लिए डिफ़ॉल्ट होगा। इसलिए यदि आपने क्षण। सच में सेट।

पुनश्च, आपको इतना परेशान करने के लिए खेद है:। मैं एक अलग प्रश्न के लिए एक नई चर्चा बना रहा हूं: एस

कोई दिक्कत नहीं है।

हम दोनों moment() और moment.utc() दोनों के साथ isUTC फ्लैग सेट नहीं करते हैं, क्योंकि भले ही आप UTC + 0 स्ट्रिंग पार्स कर रहे हों, आप प्रदर्शित करना चाह सकते हैं। उपयोगकर्ताओं के समय में समय।

यह एक बहुत ही सामान्य उपयोग का मामला है, क्योंकि यह बैकएंड पर ISO8601 UTC + 0 तार के रूप में बार स्टोर करने के लिए एक अच्छा अभ्यास है और उपयोगकर्ता के टाइमज़ोन में फ्रंटएंड पर उन्हें प्रदर्शित करता है।

धन्यवाद, मुझे उम्मीद है कि किसी और को यह चर्चा मददगार भी लगेगी।

जब मैं कंसोल.लॉग (क्षण.यूटीसी ()) चलाता हूं, तो यह "शुक्र जनवरी 18 2013 16:25:32 जीएमटी -0800 (यूटीसी)" रिपोर्ट करता है, हालांकि, यह स्थानीय प्रशांत समय है, वर्तमान यूटीसी समय नहीं है। चूंकि यह खोज (यूटीसी) कहता है जब मैं इसे लॉग करता हूं, तो मुझे लगता है कि यह सोचता है कि "16:25:32" यूटीसी समय में है, लेकिन यह वास्तव में स्थानीय प्रशांत समय है ...

इसके अतिरिक्त, मैं क्षण मान रहा हूं। आउटलुक ()। valueOf () युग में यूटीसी में मिलीसेकंड की संख्या लौटा रहा है, जो गलत प्रतीत होता है। क्या आपने इस व्यवहार को देखा है?

console.log (पल ())
H {_d: शुक्र जनवरी 18 2013 16:51:20 GMT-0800 (UTC), _isUTC: false, _a: null, _lang: false}
console.log (moment.utc ())
H {_d: शुक्र जनवरी 18 2013 16:51:20 GMT-0800 (UTC), _isUTC: true, _a: null, _lang: false}

यह सब दिखाई देगा कि यह _isUTC ध्वज को फहरा रहा है। : P ऐसा प्रतीत होता है कि मैं स्थानीय समय लौटा रहा हूं, भले ही मैं .utc () निर्दिष्ट करूं या नहीं।

हां, .utc और .local बस .isUTC फ़्लिप करें जो सभी गेटर्स और सेटर में उपयोग किया जाता है।

स्थानीय समय में मूल Date.toString प्रदर्शित होने के कारण, आप दोनों उदाहरणों में समान प्रतिनिधित्व देख रहे हैं।

हालांकि, .format का उपयोग करता है .isUTC झंडा है, तो के साथ एक पल स्वरूपण isUTC सच इच्छा प्रारूप करने के लिए ध्वज सेट के रूप में उम्मीद।

Date.prototype.toString , Date.prototype.toUTCString , और moment.fn.format बारे में नीचे दिए गए अंतर देखें।

moment().toDate().toString();     // "Wed Jan 23 2013 09:48:54 GMT-0800 (PST)"
moment.utc().toDate().toString(); // "Wed Jan 23 2013 09:48:54 GMT-0800 (PST)"
moment().toDate().toUTCString();     // "Wed, 23 Jan 2013 17:48:54 GMT"
moment.utc().toDate().toUTCString(); // "Wed, 23 Jan 2013 17:48:54 GMT"
moment().format();     // "2013-01-23T09:48:54-08:00"
moment.utc().format(); // "2013-01-23T17:48:54+00:00"

यहां भी यही समस्या:
क्षण ()। valueOf () और पल ()। utc ()। valueOf ()
एक ही मूल्य वापस! : निराश:

इसलिए utc मिलीसेकंड प्राप्त करने के लिए मुझे निम्न की आवश्यकता है:

moment().valueOf() - (moment().utcOffset() * 60 * 1000)

@rubenspgcavalcante - मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। वे दोनों समान मान वापस करने के लिए _supposed_ हैं, जो दोनों यूनिक्स युग के बाद से मिलीसेकंड में हैं।

आपके द्वारा लिखा गया स्निपेट वास्तव में समय में एक अलग पल देता है।

मैं इसी तरह के मुद्दे पर चल रहा हूं, जहां UTC ध्वज सत्य पर सेट है, लेकिन जब मैं प्रारूप करता हूं (); यह स्थानीय समय लौटाता है। यहाँ एक स्क्रीनशॉट है।

screen shot 2016-07-10 at 8 50 15 am

ऑब्जेक्ट के बाद की लाइन I कॉल फॉर्मेट () के बाद var का कंसोल.लॉग है; इस पर।

क्या मुझसे कुछ गलत हो रही है?

@ james-hoegerl ऐसा लगता है कि आंतरिक दिनांक ऑब्जेक्ट 5 जुलाई 2016 को 19:00 केंद्रीय है। UTC पाने के लिए उसमें पाँच घंटे जोड़ें, और यह 6 जुलाई है, जो कि लॉगिंग प्रतीत होता है, इसलिए संक्षेप में, मुझे कुछ भी गलत नहीं दिखता है।
ऐसा लगता है कि आप फुलकैन्डर का उपयोग कर रहे हैं। यह पल के कुछ विस्तार / बंदर पैचिंग करता है जिससे असामान्य व्यवहार हो सकता है।

ठीक है, मैं सिर्फ uct के बारे में उलझन में हूँ। मैंने सोचा था कि मुझे "2016-05-07 07:00:00" मिल जाएगा, तब मैं इसे डीबी में स्टोर कर सकता हूं और फिर प्रत्येक अंतिम उपयोगकर्ता कंप्यूटर के लिए हर समय स्थानीय समय प्राप्त कर सकता हूं।

इसलिए, सबसे पहले मैं मान लूंगा कि आप 6016-07-05 (5 जुलाई, 7 मई को नहीं)। आपका स्थानीय समय 5 जुलाई 19:00 बजे है। यूएस सेंट्रल डेलाइट के लिए समायोजित, हम पांच घंटे जोड़ते हैं। वह 6 जुलाई को आधी रात को उपजता है।

यदि आपका मतलब 5 जुलाई है, तो मुझे लगता है कि आप वास्तव में स्थानीय समय चाहते हैं, यूटीसी नहीं। आप इसे स्थानीय समय पर वापस लाने के लिए .local () कॉल कर सकते हैं।

आपको यह मददगार लग सकता है: https://maggiepint.com/2016/05/14/moment-js-shows-the-wrong-date/

आपकी मदद के लिए बहुत बहुत धन्यवाद @maggiepint। हां मेरी पिछली टिप्पणी का मेरा मतलब 7-5 था। इस बारे में मुझे खेद है कि मैंने इस सप्ताह के अंत में पूल द्वारा अपने फोन पर टिप्पणी की। मैं देख रहा हूं कि मेरी सोच अब कहां पीछे रह गई है। फुलकैन्डर सभी अस्पष्ट समय की वस्तुओं पर काम करता है, इसलिए मुझे लगता है कि मुझे बस कुछ गलतफहमी हो रही थी और उस पर कुछ टालमटोल करने की जरूरत थी। आपके समय के लिए धन्यवाद फिर से @ maggiepint

नमस्ते, यूटीसी को उपयोगकर्ता समय में बदलने के लिए, क्या हमें प्रारूप प्रदान करने की आवश्यकता है।
उदाहरण के लिए: utcTime = moment ({घंटा: 10, मिनट: 20) चलो। सुधार ('YYYY-MM-DD HH: mm: ss');
let stillUtc = moment.utc (utcTime) .toDate ();
चलो स्थानीय समय = पल (स्थिर) (।) ();
अब मैं स्थानीयता प्राप्त करने में सक्षम हूं। लेकिन अगर मैं प्रारूप हटाता हूं तो भी मैं यूटीसी प्रारूप बना सकता हूं। यहाँ 10:20 UTC टाइमजोन है जो बैकएंड से आ रहा है। मैं इसे यूजर टाइमजोन में यूजर को दिखाना चाहता हूं।

क्रिप्या मेरि सहायता करे।

यहां भी यही समस्या:
क्षण ()। valueOf () और पल ()। utc ()। valueOf ()
एक ही मूल्य वापस! 😞
इसलिए utc मिलीसेकंड प्राप्त करने के लिए मुझे निम्न की आवश्यकता है:
क्षण ()। valueOf () - (क्षण) (। utcOffset () * 60 * 1000)

@rubenspgcavalcante - मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। उन दोनों को एक ही मूल्य पर लौटना चाहिए, ये दोनों यूनिक्स युग के बाद से मिलीसेकंड में हैं।

@ mj1856 मुझे समझ में नहीं आ रहा है कि कैसे पल ()। valueOf () और पल ()। utc (?)। valueOf () माना जाता है कि एक ही मान वापस करना है ??

मुझे UTC कार्यक्षमता के चारों ओर भ्रम की अभिव्यक्ति को जोड़ना चाहिए। क्षण की सबसे सहज अपेक्षा .utc () यह होगा कि यह UTC समय में अब दिनांक / समय का प्रतिनिधित्व करने वाला एक मोमेंट ऑब्जेक्ट लौटाएगा। लेकिन इस चर्चा के अनुसार यह मामला नहीं है और यह सिर्फ ध्वज सेट करता है। यह अभी भी स्पष्ट नहीं है कि झंडा क्या करता है। प्रलेखन में इसका कोई उल्लेख नहीं है, जो इसे अपर्याप्त रूप से अपर्याप्त बनाता है। कृपया इस विषय का स्पष्टीकरण अपने बैकलॉग के उदाहरणों के साथ जोड़ें। धन्यवाद।

क्या यह पृष्ठ उपयोगी था?
0 / 5 - 0 रेटिंग्स

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

Brendan-Lucas picture Brendan-Lucas  ·  9टिप्पणियाँ

electrobabe picture electrobabe  ·  48टिप्पणियाँ

OregonianPyro picture OregonianPyro  ·  10टिप्पणियाँ

elmart picture elmart  ·  42टिप्पणियाँ

ghost picture ghost  ·  33टिप्पणियाँ