2016-08-26 10 views
7

का उपयोग करते समय है:जावास्क्रिप्ट प्रदर्शन घंटे अगर यह कम से कम 10

Date.toLocaleTimeString() 

इसमें 01:42:35 PM बजाय 1:42:35 PM प्रदर्शित करने के लिए किसी भी तरह से है?

मैं इस में जोड़ने की कोशिश की है:

Date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second: '2-digit'}) 

लेकिन यह अभी भी केवल एक ही अंकों घंटे का उत्पादन (जब तक यह 10 के बाद है)।

+0

कोई * दिनांक नहीं है .toLocaleTimeString *, [* Date.prototype.toLocaleTimeString *] (http://ecma-international.org/ecma-402/3.0/index.html#sup-date.prototype है। tolocaletimestring) हालांकि। यह अंतर्राष्ट्रीयकरण API का हिस्सा है और उपयोग में आने वाले सभी ब्राउज़रों द्वारा समर्थित नहीं है। – RobG

उत्तर

3

यदि मेरी पढ़ाई सही है, तो relevant spec के अनुसार, ऐसा लगता है कि यह जानबूझकर है।

  • वरना अगर च "2 अंकों" है, तो
    • Let fv FormatNumber हो (NF2, V)।
    • यदि एफवी की लंबाई संपत्ति 2 से अधिक है, तो fv fv के पिछले दो वर्णों का सबस्ट्रिंग होने दें।

मुझे समझ में नहीं कर सकते क्यों यह उस तरह से निर्दिष्ट किया जाएगा, लेकिन वहाँ यह है। यदि आप शून्य-पैडिंग करना चाहते हैं, तो ऐसा लगता है कि आपको इसे स्वयं प्रीपेड करने की आवश्यकता होगी।

+0

उत्तर नहीं था मैं हाहा के लिए उम्मीद कर रहा था लेकिन ऐसा लगता है। इसे खोजने के लिए धन्यवाद। मेरी सभी खोजों में कुछ भी नहीं हुआ। – rjbogz

0

यह मेरे

var datelocal = new Date(2016, 01, 01, 1, 1, 1).toLocaleTimeString(navigator.language, { 
hour: '2-digit', 
minute: '2-digit', 
second: '2-digit' 
}); 

के लिए इस तरह से काम किया है मैं भी एक plunker संलग्न कर रहा हूँ।

नोट: आपको वर्तमान दिनांक प्राप्त करने के लिए दिनांक विधि को दिनांक पैरामीटर पास करने के बजाय नई तिथि() प्रदान करना होगा।

+0

हाँ, मैं यह कर रहा हूँ। मैंने बस सादगी के लिए तैनात किया। यह अभी भी 2 अंकों का उत्पादन नहीं करता है। – rjbogz

+0

जब मैं अपने प्लंकर पर बटन दबाता हूं, तो मुझे "1:01:01 पूर्वाह्न" मिलता है। आपको क्या मिलेगा? आप कौन सा ब्राउज़र उपयोग कर रहे हैं? – recursive

0

ऐसी स्थिति में सही प्रारूप प्राप्त करने के लिए Date.prototype.toLocaleTimeString या इसी तरह के फ़ंक्शंस पर निर्भर होने के बजाय, मैं अपने जावास्क्रिप्ट प्रोजेक्ट में Moment.js का उपयोग करता हूं। Moment.js एक जावास्क्रिप्ट लाइब्रेरी है जिसे विशेष रूप से पार्स, सत्यापन, कुशलतापूर्वक और display तिथियों के लिए डिज़ाइन किया गया है। प्रारूप आप वर्णित में समय के लिए एक स्ट्रिंग के लिए, आप इस्तेमाल कर सकते हैं:

var s = moment().format('hh:mm:ss A'); 
console.log(s); 

यह आज की तारीख का उपयोग करता है। यदि आप किसी अन्य तिथि का उपयोग करना चाहते हैं, तो आप ऐसा है, तो भी कर सकते हैं:

var s = moment(new Date(2016, 8, 19, 1, 10)).format('hh:mm:ss A'); 
console.log(s); 

यह आप अपने खुद के शून्य गद्दी और अन्य इसी तरह के काम करना की परेशानी बचाता है।

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