2012-01-20 6 views
90
var date = "2012-01-18T16:03"; 
var date = new Date(date); 

console.log(date.getMinutes()); 
console.log(date.getMinutes().length) 

यह रिटर्न 3.getMinutes() 0-9 - दो संख्याओं के साथ कैसे करें?

  1. मैं कैसे इसे वापस '03' कर सकता हूँ?
  2. .length वापस क्यों अनिश्चित है?

मैं इस कोशिश की, लेकिन यह काम नहीं किया:

strlen == 1 तो num = ('0' + num);

+0

पर डॉक्स देखें, '.getMinutes की वापसी()' एक पूर्णांक है, आप एक पूर्णांक से .length' उपयोग नहीं कर सकते '। इसे पूरा करने के लिए (तिथियों से निपटने के दौरान अनुशंसित नहीं) एक स्ट्रिंग को संख्या को पार्स कर रहा है और फिर लंबाई की जांच कर रहा है। उदा। 'Date.getMinutes()। ToString() लंबाई ' – ViniciusPires

उत्तर

184
var date = new Date("2012-01-18T16:03"); 

console.log((date.getMinutes()<10?'0':'') + date.getMinutes()); 
+1

यह' <10?' 0 ':' 'मतलब क्या है? – user1063287

+0

@ user1063287 यह एक इनलाइन है यदि अन्य कथन –

+3

@ user1063287 इसका अर्थ है: "यदि getMinutes() 10 से कम है, तो 0 को वापस करें, यदि अधिक हो, तो एक खाली स्ट्रिंग लौटाएं। –

3

.length अपरिभाषित क्योंकि getMinutes एक नंबर, न कोई स्ट्रिंग लौट रहा है। संख्याओं में length संपत्ति नहीं है। तुम्हें पता है, तो (तुम, length === 1 के लिए जाँच नहीं 0 चाहेगा) लंबाई की जांच

var m = "" + date.getMinutes();

यह एक स्ट्रिंग बनाने के लिए कर सकता है।

5

आप अगर यह कम से कम 10 है ... इसके बारे में लंबाई की तलाश में नहीं है क्योंकि यह एक संख्या है और एक स्ट्रिंग

2

नंबर लंबाई नहीं है की जाँच करनी चाहिए, लेकिन आप आसानी से परिवर्तित कर सकते हैं एक स्ट्रिंग के लिए संख्या, लंबाई की जांच और उसके बाद 0 पहले जोड़ें अगर यह आवश्यक है:

 
var strMonth = '' + date.getMinutes(); 
if (strMonth.length == 1) { 
    strMonth = '0' + strMonth; 
} 
3

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

var date = new Date(date);
var min = date.getMinutes();

if (min < 10) {
min = '0' + min;
} else {
min = min + '';
}

console.log(min);

आशा इस मदद करता है।

0

मैं आमतौर पर कोड के इस टुकड़े का उपयोग करें:

var start = new Date(timestamp), 
    startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes(); 

यह काफी @ogur स्वीकार किए जाते हैं जवाब देने के लिए समान है, लेकिन ऐसा होता है कि 0 की जरूरत नहीं है में एक खाली स्ट्रिंग जोड़ नहीं है। यकीन नहीं है कि यह बेहतर है। ऐसा करने का एक और तरीका!

4

मेरा सुझाव है:

var minutes = data.getMinutes(); 
minutes = minutes > 9 ? minutes : '0' + minutes; 

यह एक समारोह कॉल कम है। प्रदर्शन के बारे में सोचना हमेशा अच्छा होता है। यह भी छोटा है;

0
$(".min").append((date.getMinutes()<10?'0':'') + date.getMinutes()); 

जे एस के लिए नया तो यह बहुत उपयोगी सबसे ppl इस समस्या नई पर भी देख था तो यह मैं कैसे div बुलाया "वर्ग =" मिनट "

आशा में दिखाने के लिए मिल गया है

var dateTime = new Date(); 
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2); 
5

एक अन्य विकल्प में मदद करता है।स्वीकृत उत्तर बहुत अच्छा है। लेकिन मैं इसे इस तरह से किया होता।

Date.prototype.getFullMinutes = function() { 
    if (this.getMinutes() < 10) { 
     return '0' + this.getMinutes(); 
    } 
    return this.getMinutes(); 
}; 

अब यदि आप इसका उपयोग करना चाहते हैं।

console.log(date.getFullMinutes()); 
+0

मुझे यह समाधान पसंद है, लेकिन ऐसा लगता है कि IE8 और पुराने संस्करण 'substr' के लिए नकारात्मक संख्याओं का समर्थन नहीं करते हैं। http://www.w3schools.com/jsref/jsref_substr.asp – GtEx

8

मैं अगर मैं हो सकता है समस्या के लिए एक अधिक स्वच्छ समाधान प्रदान करने के लिए करना चाहते हैं: यह किसी

142

ये जवाब महान नहीं हैं, यहां तक ​​कि शीर्ष पोस्ट अपतटीय भी है। यहां y'go, क्रॉस-ब्राउज़र और क्लीनर int/स्ट्रिंग रूपांतरण। इसके अलावा मेरी सलाह date = Date(...) जैसे कोड के साथ एक वैरिएबल नाम 'डेट' का उपयोग नहीं करती है, जहां आप भाषा केस संवेदनशीलता पर भारी निर्भर हैं (यह काम करता है, लेकिन जोखिम भरा जब आप विभिन्न नियमों के साथ विभिन्न भाषाओं में सर्वर/ब्राउज़र कोड के साथ काम कर रहे हैं)। तो एक वर current_date में जावास्क्रिप्ट तिथि मानते हुए:

mins = ('0'+current_date.getMinutes()).slice(-2); 

तकनीक सबसे दायीं ओर 2 वर्ण "0" getMinutes() का स्ट्रिंग मान पर prepended की (slice(-2)) लेते हैं। तो:

"0"+"12" -> "012".slice(-2) -> "12" 

और

"0"+"1" -> "01".slice(-2) -> "01" 
+3

सुरुचिपूर्ण समाधान – Oldenborg

+4

यह है स्वीकार्य एक इम्हो से बेहतर। – Vignesh

+0

शानदार। इसे प्यार करें। –

2

मैं न यहाँ पर किसी भी ES6 जवाब देख तो मैं एक StandardJS का उपयोग कर स्वरूपण

// ES6 String formatting example 
const time = new Date() 
const tempMinutes = new Date.getMinutes() 
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes 
4

सुरुचिपूर्ण ES6 समारोह hh:mm:ss में एक तारीख को स्वरूपित करने जोड़ना होगा:

const leadingZero = (num) => `0${num}`.slice(-2); 

const formatTime = (date) => 
    [date.getHours(), date.getMinutes(), date.getSeconds()] 
    .map(leadingZero) 
    .join(':'); 
0

दो के लिए अंकों मिनट का उपयोग करें:

String(date.getMinutes()).padStart(2, "0"); 

अर्थ:, स्ट्रिंग दो वर्ण लंबा बनाने यदि एक चार है तो सेट लापता new Date().toLocaleFormat("%M")

1

एक अन्य लघु रास्ते का उपयोग कर एक अग्रणी शून्य के साथ मिनट भरने के लिए है इस स्थिति में 0

बस को जोड़ने के लिए str.padStart(targetLength, padString)

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