दिलचस्प पोस्ट
क्या jtextfield और jlist का उपयोग करने के लिए एक स्वत: पूर्ण होना संभव है? कैसे तय चौड़ाई के साथ एचटीएमएल बटन का पाठ लपेटा सभी एसडीके लाइसेंसों को स्वचालित रूप से स्वीकार करें एआरसी के साथ, बेहतर क्या है: आलोक या आटोरायलेज़ इनिशियलाइजर्स? पायथन पीडीएफ पुस्तकालय कैसे खुद को हटाए बिना पाठ फ़ाइल की सामग्री को हटाने के लिए चींटी के साथ एक बंडल जार बनाना डेटा विशेषता द्वारा तत्व का चयन करना मेरी div की ऊंचाई शून्य क्यों है xampp MySQL प्रारंभ नहीं होता है लॉक फ़ाइल बनाने / खोलने में असमर्थ: /data/mongod.lock त्रुटि: 13 अनुमति अस्वीकृत अजगर में सत्य और फाल्सी क्या है? यह कैसे सच और गलत से अलग है? एक खोल पाइप में त्रुटि कोड पकड़ना आप सी घोषणाओं को कैसे पढ़ा? स्पार्क में स्तरीकृत नमूना

जावास्क्रिप्ट सेकंड से प्रारूप के साथ समय स्ट्रिंग hh: mm: ss

मैं समय की अवधि, अर्थात्, बृहदान्त्र से अलग समय स्ट्रिंग (hh: mm: ss) की संख्या परिवर्तित करना चाहता हूं

मुझे यहां कुछ उपयोगी उत्तर मिले लेकिन वे सभी एक्स घंटे और एक्स मिनट प्रारूप में बदलने के बारे में बात करते हैं।

तो क्या वहाँ एक छोटा स्निपेट है जो यह jQuery में करता है या केवल कच्ची जावास्क्रिप्ट?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट सेकंड से प्रारूप के साथ समय स्ट्रिंग hh: mm: ss"

String.prototype.toHHMMSS = function () { var sec_num = parseInt(this, 10); // don't forget the second param var hours = Math.floor(sec_num / 3600); var minutes = Math.floor((sec_num - (hours * 3600)) / 60); var seconds = sec_num - (hours * 3600) - (minutes * 60); if (hours < 10) {hours = "0"+hours;} if (minutes < 10) {minutes = "0"+minutes;} if (seconds < 10) {seconds = "0"+seconds;} return hours+':'+minutes+':'+seconds; } 

आप इसे अब की तरह उपयोग कर सकते हैं:

 alert("5678".toHHMMSS()); 

आप किसी भी बाहरी जेएस लाइब्रेरी के बिना इसे निम्नलिखित की तरह जेएस दिनांक विधि की सहायता से कर सकते हैं:

  var date = new Date(null); date.setSeconds(SECONDS); // specify value for SECONDS here date.toISOString().substr(11, 8); 

hh:MM:ss प्रारूप में समय का हिस्सा प्राप्त करने के लिए, आप इस नियमित अभिव्यक्ति का उपयोग कर सकते हैं:

 var myDate = new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"); 

(यह किसी के द्वारा उसी पोस्ट में ऊपर वर्णित है, इसके लिए धन्यवाद।)

मैं दिनांक वस्तु का उपयोग करते हुए साधारण जावास्क्रिप्ट की सलाह देता हूं:

 var seconds = 9999; // multiply by 1000 because Date() requires miliseconds var date = new Date(seconds * 1000); var hh = date.getUTCHours(); var mm = date.getUTCMinutes(); var ss = date.getSeconds(); // If you were building a timestamp instead of a duration, you would uncomment the following line to get 12-hour (not 24) time // if (hh > 12) {hh = hh % 12;} // These lines ensure you have two-digits if (hh < 10) {hh = "0"+hh;} if (mm < 10) {mm = "0"+mm;} if (ss < 10) {ss = "0"+ss;} // This formats your string to HH:MM:SS var t = hh+":"+mm+":"+ss; document.write(t); 

(बेशक, दिनांक ऑब्जेक्ट बनाई गई है, इसके साथ एक वास्तविक तिथि जुड़ी होगी, लेकिन वह डेटा अपरिवर्तनीय है, इसलिए इन उद्देश्यों के लिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।)

एक Google खोज ने यह परिणाम दिया :

 function secondsToTime(secs) { secs = Math.round(secs); var hours = Math.floor(secs / (60 * 60)); var divisor_for_minutes = secs % (60 * 60); var minutes = Math.floor(divisor_for_minutes / 60); var divisor_for_seconds = divisor_for_minutes % 60; var seconds = Math.ceil(divisor_for_seconds); var obj = { "h": hours, "m": minutes, "s": seconds }; return obj; } 

एक थीम पर भिन्नता सिंगल डिजिट सेकंड को थोड़ा अलग ढंग से संभालता है

 seconds2time(0) -> "0s" seconds2time(59) -> "59s" seconds2time(60) -> "1:00" seconds2time(1000) -> "16:40" seconds2time(4000) -> "1:06:40" function seconds2time (seconds) { var hours = Math.floor(seconds / 3600); var minutes = Math.floor((seconds - (hours * 3600)) / 60); var seconds = seconds - (hours * 3600) - (minutes * 60); var time = ""; if (hours != 0) { time = hours+":"; } if (minutes != 0 || time !== "") { minutes = (minutes < 10 && time !== "") ? "0"+minutes : String(minutes); time += minutes+":"; } if (time === "") { time = seconds+"s"; } else { time += (seconds < 10) ? "0"+seconds : String(seconds); } return time; } 

मुझे पहला जवाब पसंद है उसके लिए कुछ अनुकूलन:

  • स्रोत डेटा एक संख्या है, पुनर्गणना की कोई आवश्यकता नहीं है।
  • बहुत अधिक कंप्यूटिंग

परिणाम कोड:

 Number.prototype.toHHMMSS = function () { var seconds = Math.floor(this), hours = Math.floor(seconds / 3600); seconds -= hours*3600; var minutes = Math.floor(seconds / 60); seconds -= minutes*60; if (hours < 10) {hours = "0"+hours;} if (minutes < 10) {minutes = "0"+minutes;} if (seconds < 10) {seconds = "0"+seconds;} return hours+':'+minutes+':'+seconds; } 

अद्भुत क्षण। जेएस लाइब्रेरी का उपयोग करना:

 function humanizeDuration(input, units ) { // units is a string with possible values of y, M, w, d, h, m, s, ms var duration = moment().startOf('day').add(units, input), format = ""; if(duration.hour() > 0){ format += "H [hours] "; } if(duration.minute() > 0){ format += "m [minutes] "; } format += " s [seconds]"; return duration.format(format); } 

यह आपको किसी भी अवधि को निर्दिष्ट करने के लिए यह घंटे, मिनट, सेकंड, मिल्स और एक मानव पठनीय संस्करण देता है।

new Date().toString().split(" ")[4];

परिणाम 15:08:03

यह बहुत आसान है,

 function toTimeString(seconds) { return (new Date(seconds * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]; } 
 s2t=function (t){ return parseInt(t/86400)+'d '+(new Date(t%86400*1000)).toUTCString().replace(/.*(\d{2}):(\d{2}):(\d{2}).*/, "$1h $2m $3s"); } s2t(123456); 

परिणाम:

 1d 10h 17m 36s 

मुझे Powtac के उत्तर पसंद है, लेकिन मैं इसे कांगारू में इस्तेमाल करना चाहता था, इसलिए मैंने अपने कोड का उपयोग करके एक फिल्टर बनाया।

 .filter('HHMMSS', ['$filter', function ($filter) { return function (input, decimals) { var sec_num = parseInt(input, 10), decimal = parseFloat(input) - sec_num, hours = Math.floor(sec_num / 3600), minutes = Math.floor((sec_num - (hours * 3600)) / 60), seconds = sec_num - (hours * 3600) - (minutes * 60); if (hours < 10) {hours = "0"+hours;} if (minutes < 10) {minutes = "0"+minutes;} if (seconds < 10) {seconds = "0"+seconds;} var time = hours+':'+minutes+':'+seconds; if (decimals > 0) { time += '.' + $filter('number')(decimal, decimals).substr(2); } return time; }; }]) 

यह कार्यात्मक रूप से समान है, सिवाय इसके कि मैंने एक वैकल्पिक दशमलव क्षेत्र में आंशिक सेकंड प्रदर्शित करने के लिए जोड़ा। इसे प्रयोग करें जैसे आप किसी भी अन्य फ़िल्टर करेंगे:

{{ elapsedTime | HHMMSS }} {{ elapsedTime | HHMMSS }} प्रदर्शित करता है: 01:23:45

{{ elapsedTime | HHMMSS : 3 }} {{ elapsedTime | HHMMSS : 3 }} प्रदर्शित करता है: 01:23:45.678

यहां एक आधुनिक ES6 संस्करण है:

 function formatTime(seconds) { const h = Math.floor(seconds / 3600); const m = Math.floor((seconds % 3600) / 60); const s = seconds % 60; return [ h, m > 9 ? m : '0' + m, s > 9 ? s : '0' + s, ].filter(s => s).join(':'); } 

अपेक्षित परिणाम:

 expect(formatTime(0)).to.eq('00:00'); expect(formatTime(1)).to.eq('00:01'); expect(formatTime(599)).to.eq('09:59'); expect(formatTime(600)).to.eq('10:00'); expect(formatTime(3600)).to.eq('1:00:00'); expect(formatTime(360009)).to.eq('100:00:09'); 

मुझे पसंद है Webjins सबसे अधिक जवाब है, इसलिए मैं इसे विज्ञापन प्रत्यय के साथ दिनों को प्रदर्शित करने के लिए बढ़ा दिया, सशर्त प्रदर्शन किया और सादे सेकंड पर प्रत्यय के रूप में शामिल किया गया:

 function sec2str(t){ var d = Math.floor(t/86400), h = ('0'+Math.floor(t/3600) % 24).slice(-2), m = ('0'+Math.floor(t/60)%60).slice(-2), s = ('0' + t % 60).slice(-2); return (d>0?d+'d ':'')+(h>0?h+':':'')+(m>0?m+':':'')+(t>60?s:s+'s'); } 

रिटर्न "3 डी 16:32:12" या "16:32:12" या "32:12" या "12 एस"

 function toHHMMSS(seconds) { var h, m, s, result=''; // HOURs h = Math.floor(seconds/3600); seconds -= h*3600; if(h){ result = h<10 ? '0'+h+':' : h+':'; } // MINUTEs m = Math.floor(seconds/60); seconds -= m*60; result += m<10 ? '0'+m+':' : m+':'; // SECONDs s=seconds%60; result += s<10 ? '0'+s : s; return result; } 

उदाहरण

     toHHMMSS (111); 
     "01:51"

     toHHMMSS (4444);
     "01:14:04"

     toHHMMSS (33);
     "00:33"
 function formatTime(seconds) { return [ parseInt(seconds / 60 / 60), parseInt(seconds / 60 % 60), parseInt(seconds % 60) ] .join(":") .replace(/\b(\d)\b/g, "0$1") } 

दिनांक ऑब्जेक्ट के स्ट्रिंग toString() विधि से लौटे स्ट्रिंग में समय के उप-ऑब्जेक्ट को मैच करने के लिए एक नियमित अभिव्यक्ति का उपयोग किया जा सकता है, जिसे निम्न रूप में स्वरूपित किया गया है: "गुरु जुलाई 05, 2012 02:45:12 GMT + 0100 (GMT डेलाइट टाइम) "। ध्यान दें कि यह समाधान युग के बाद से समय का उपयोग करता है: 1 जनवरी 1 9 70 की आधी रात। यह समाधान एक-लाइनर हो सकता है, हालांकि यह बंटवारे इसे समझने में आसान बनाता है।

 function secondsToTime(seconds) { var start = new Date(1970, 1, 1, 0, 0, 0, 0).getTime(); var end = new Date(1970, 1, 1, 0, 0, parseInt(seconds), 0).getTime(); var duration = end - start; return new Date(duration).toString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"); } 

यहां एक और संस्करण है, जो दिन भी संभालता है:

 function FormatSecondsAsDurationString( seconds ) { var s = ""; var days = Math.floor( ( seconds / 3600 ) / 24 ); if ( days >= 1 ) { s += days.toString() + " day" + ( ( days == 1 ) ? "" : "s" ) + " + "; seconds -= days * 24 * 3600; } var hours = Math.floor( seconds / 3600 ); s += GetPaddedIntString( hours.toString(), 2 ) + ":"; seconds -= hours * 3600; var minutes = Math.floor( seconds / 60 ); s += GetPaddedIntString( minutes.toString(), 2 ) + ":"; seconds -= minutes * 60; s += GetPaddedIntString( Math.floor( seconds ).toString(), 2 ); return s; } function GetPaddedIntString( n, numDigits ) { var nPadded = n; for ( ; nPadded.length < numDigits ; ) { nPadded = "0" + nPadded; } return nPadded; } 

मुझे लगता है कि प्रदर्शन बुद्धिमान यह अब तक का सबसे तेज है:

 var t = 34236; // your seconds var time = ('0'+Math.floor(t/3600) % 24).slice(-2)+':'+('0'+Math.floor(t/60)%60).slice(-2)+':'+('0' + t % 60).slice(-2) //would output: 09:30:36 

मैं अग्रणी शून्य के बिना अग्रणी इकाई (दिन, घंटे, मिनट) को प्राथमिकता देता हूं। लेकिन सेकंड्स को हमेशा मिनटों तक ले जाना चाहिए (0:13), इस प्रस्तुति को आसानी से 'अवधि' के रूप में माना जाता है, बिना आगे स्पष्टीकरण (अंक, सेकेंड, इत्यादि के रूप में), विभिन्न भाषाओं (अंतरराष्ट्रीयकरण) में प्रयोग करने योग्य।

  // returns (-)dh:mm:ss(.f) // (-)h:mm:ss(.f) // (-)m:ss(.f) function formatSeconds (value, fracDigits) { var isNegative = false; if (isNaN(value)) { return value; } else if (value < 0) { isNegative = true; value = Math.abs(value); } var days = Math.floor(value / 86400); value %= 86400; var hours = Math.floor(value / 3600); value %= 3600; var minutes = Math.floor(value / 60); var seconds = (value % 60).toFixed(fracDigits || 0); if (seconds < 10) { seconds = '0' + seconds; } var res = hours ? (hours + ':' + ('0' + minutes).slice(-2) + ':' + seconds) : (minutes + ':' + seconds); if (days) { res = days + '.' + res; } return (isNegative ? ('-' + res) : res); } 

// सर्वर साइड (। नेट, सी #) की नकल स्वरूपण की तरह:

  public static string Format(this TimeSpan interval) { string pattern; if (interval.Days > 0) pattern = @"d\.h\:mm\:ss"; else if (interval.Hours > 0) pattern = @"h\:mm\:ss"; else pattern = @"m\:ss"; return string.Format("{0}", interval.ToString(pattern)); } 

आप क्षण-अवधि-प्रारूप प्लगइन के साथ Momement.js का उपयोग कर सकते हैं:

 var seconds = 3820; var duration = moment.duration(seconds, 'seconds'); var formatted = duration.format("hh:mm:ss"); console.log(formatted); // 01:03:40 
 <!-- Moment.js library --> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> <!-- moment-duration-format plugin --> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script> 

मैंने इस तरह से इसे किया

 function timeFromSecs(seconds) { return( Math.floor(seconds/86400)+'d :'+ Math.floor(((seconds/86400)%1)*24)+'h : '+ Math.floor(((seconds/3600)%1)*60)+'m : '+ Math.round(((seconds/60)%1)*60)+'s'); } 

टाइमफ्रेमसेक (22341938) '258d 14h 5m 38s' वापस आ जाएगी

मैं आर्टेम के उत्तर को लेकर था, लेकिन मैं एक नया पोस्टर हूं। मैंने अपने समाधान पर विस्तार किया, हालांकि ओपी ने निम्नानुसार क्या पूछा नहीं

  t=(new Date()).toString().split(" "); timestring = (t[2]+t[1]+' <b>'+t[4]+'</b> '+t[6][1]+t[7][0]+t[8][0]); 

लेना

04Oct 16:31:28 पीडीटी

यह मेरे लिए काम करता है …

लेकिन अगर आप केवल एक बार मात्रा के साथ शुरू कर रहे हैं, तो मैं दो कार्यों का उपयोग करता हूं; एक प्रारूप और पैड, और एक को गणना करने के लिए:

 function sec2hms(timect){ if(timect=== undefined||timect==0||timect === null){return ''}; //timect is seconds, NOT milliseconds var se=timect % 60; //the remainder after div by 60 timect = Math.floor(timect/60); var mi=timect % 60; //the remainder after div by 60 timect = Math.floor(timect/60); var hr = timect % 24; //the remainder after div by 24 var dy = Math.floor(timect/24); return padify (se, mi, hr, dy); } function padify (se, mi, hr, dy){ hr = hr<10?"0"+hr:hr; mi = mi<10?"0"+mi:mi; se = se<10?"0"+se:se; dy = dy>0?dy+"d ":""; return dy+hr+":"+mi+":"+se; } 

यदि आप जानते हैं कि आपके पास सेकंड की संख्या है, तो यह काम करेगा। यह मूल दिनांक () वस्तु का भी उपयोग करता है

 function formattime(numberofseconds){ var zero = '0', hours, minutes, seconds, time; time = new Date(0, 0, 0, 0, 0, numberofseconds, 0); hh = time.getHours(); mm = time.getMinutes(); ss = time.getSeconds() // Pad zero values to 00 hh = (zero+hh).slice(-2); mm = (zero+mm).slice(-2); ss = (zero+ss).slice(-2); time = hh + ':' + mm + ':' + ss; return time; } 

यहाँ है कि मैंने यह कैसे किया। यह काफी अच्छी तरह से काम करने लगता है, और यह अत्यंत कॉम्पैक्ट है (हालांकि यह बहुत अधिक त्रिभुज ऑपरेटरों का उपयोग करता है, हालांकि)

 function formatTime(seconds) { var hh = Math.floor(seconds / 3600), mm = Math.floor(seconds / 60) % 60, ss = Math.floor(seconds) % 60; return (hh ? (hh < 10 ? "0" : "") + hh + ":" : "") + ((mm < 10) && hh ? "0" : "") + mm + ":" + (ss < 10 ? "0" : "") + ss } 

… और तारों को स्वरूपित करने के लिए …

 String.prototype.toHHMMSS = function() { formatTime(parseInt(this, 10)) }; 

ToHHMMSS का गैर-प्रोटोटाइप संस्करण:

  function toHHMMSS(seconds) { var sec_num = parseInt(seconds); var hours = Math.floor(sec_num / 3600); var minutes = Math.floor((sec_num - (hours * 3600)) / 60); var seconds = sec_num - (hours * 3600) - (minutes * 60); if (hours < 10) {hours = "0"+hours;} if (minutes < 10) {minutes = "0"+minutes;} if (seconds < 10) {seconds = "0"+seconds;} var time = hours+':'+minutes+':'+seconds; return time; } 

यहाँ समाधान की मेरी दृष्टि है आप नीचे मेरी स्निपेट आज़मा सकते हैं

 function secToHHMM(sec) { var d = new Date(); d.setHours(0); d.setMinutes(0); d.setSeconds(0); d = new Date(d.getTime() + sec*1000); return d.toLocaleString('en-GB').split(' ')[1]; }; alert( 'One hour: ' + secToHHMM(60*60) ); // '01:00:00' alert( 'One hour five minutes: ' + secToHHMM(60*60 + 5*60) ); // '01:05:00' alert( 'One hour five minutes 23 seconds: ' + secToHHMM(60*60 + 5*60 + 23) ); // '01:05:23' 

स्वीकार किए जाते हैं उत्तर के इस संस्करण में यह थोड़ा सुंदर है यदि आप उदाहरण के लिए वीडियो लंबाई के साथ काम कर रहे हैं:

1:37:40 (1 घंटा / 37 मिनट / 40 सेकंड)

1:00 (1 मिनट)

2:20 (2 मिनट और 20 सेकंड)

 String.prototype.toHHMMSS = function () { var sec_num = parseInt(this, 10); // don't forget the second param var hours = Math.floor(sec_num / 3600); var minutes = Math.floor((sec_num - (hours * 3600)) / 60); var seconds = sec_num - (hours * 3600) - (minutes * 60); var hourSeparator = ':'; var minuteSeparator = ':'; if(hours == 0){hours = '';hourSeparator = '';} if (minutes < 10 && hours != 0) {minutes = "0"+minutes;} if (seconds < 10) {seconds = "0"+seconds;} var time = hours+hourSeparator+minutes+minuteSeparator+seconds; return time; } 

अवधि के लिए मिलिसेकंड, सरल तरीका:

 // To have leading zero digits in strings. function pad(num, size) { var s = num + ""; while (s.length < size) s = "0" + s; return s; } // ms to time/duration msToDuration = function(ms){ var seconds = ms / 1000; var hh = Math.floor(seconds / 3600), mm = Math.floor(seconds / 60) % 60, ss = Math.floor(seconds) % 60, mss = ms % 1000; return pad(hh,2)+':'+pad(mm,2)+':'+pad(ss,2)+'.'+pad(mss,3); } 

यह 327577 से 00:05:27.577 को परिवर्तित करता है

अद्यतन करें

अलग परिदृश्य के लिए एक अन्य तरीका:

 toHHMMSS = function (n) { var sep = ':', n = parseFloat(n), sss = parseInt((n % 1)*1000), hh = parseInt(n / 3600); n %= 3600; var mm = parseInt(n / 60), ss = parseInt(n % 60); return pad(hh,2)+sep+pad(mm,2)+sep+pad(ss,2)+'.'+pad(sss,3); function pad(num, size) { var str = num + ""; while (str.length < size) str = "0" + str; return str; } } toHHMMSS(6315.077) // Return 01:45:15.077 

यदि आप XDate () लाइब्रेरी का उपयोग करते हैं तो आप इस फ़ंक्शन का उपयोग कर सकते हैं

 function durationString(begin, end) { "use strict"; let calc = begin.clone(); let years = Math.floor(calc.diffYears(end)); calc = begin.addYears(years); let months = Math.floor(calc.diffMonths(end)); calc = begin.addMonths(months); let days = Math.floor(calc.diffDays(end)); calc = begin.addDays(days); let hours = Math.floor(calc.diffHours(end)); calc = begin.addHours(hours); let minutes = Math.floor(calc.diffMinutes(end)); calc = begin.addMinutes(minutes); let seconds = Math.floor(calc.diffSeconds(end)); return years + "Y " + months + "M " + days + "D - " + hours + "h " + minutes + "m "+ seconds + "s"; }