मैं एक क्षण.जेएस अवधि पर प्रारूप () का उपयोग कैसे करूं?


211

वहाँ किसी भी तरह से मैं उपयोग कर सकते हैं। अवधि वस्तुओं पर .js format विधि? मुझे यह डॉक्स में कहीं भी नहीं मिल रहा है और यह अवधि ऑब्जेक्ट पर एक विशेषता नहीं दिखता है।

मैं ऐसा कुछ करने में सक्षम होना चाहता हूं:

var diff = moment(end).unix() - moment(start).unix();
moment.duration(diff).format('hh:mm:ss')

इसके अलावा, अगर कोई अन्य पुस्तकालय है जो आसानी से इस तरह की कार्यक्षमता को समायोजित कर सकता है, तो मैं रेकमेंडेशन में दिलचस्पी लूंगा।

धन्यवाद!


5
moment.utc (duration.asMilliseconds ()) प्रारूप ( 'hh: mm: ss');। - एक अवधि एक वेक्टर है। इसकी पूंछ को मूल पर रखकर आप hh: mm: ss प्राप्त करने के लिए दिनांक स्वरूपण का उपयोग कर सकते हैं।
पॉल विलियम्स

पल.कॉट (क्षण। अवधि (23, 'सेकंड')। asMilliseconds ())। प्रारूप ('hh: mm: ss') => "12:00:23" इतनी अच्छी तरह से काम नहीं करता है
Goldenratio

आह, मैं इस मुद्दे पाया, HH:mm:ssदे देंगे 00:00:23मेरे पिछले उदाहरण में। तो बस गलत हिस्सा घंटे पर भाग
Goldenratio

जवाबों:


55

हम क्षणों में कुछ प्रकार के स्वरूपणों को जोड़ रहे हैं। Https://github.com/timrwood/moment/issues/463 देखें

कुछ अन्य पुस्तकालय जो मदद कर सकते हैं, वे हैं http://countdownjs.org/ और https://github.com/icambron/twit.ss।


4
मैं अवधि प्रारूपण के लिए भी तत्पर हूं। अब उलटी गिनती देख रहे हैं, लेकिन ट्विक्स केवल "स्मार्ट" स्वरूपण करने के लिए लगता है, बहुत अधिक अनुकूलन नहीं।
मप्र

2
जबकि ट्विक्स स्मार्ट स्वरूपण करने के लिए कड़ी मेहनत करता है, इसमें बहुत सारे स्वरूपण विकल्प होते हैं, जिसमें टोकन शामिल हैं: github.com/icambron/twix.js/wiki/Formatting । डिस्क्लेमर: मैं ट्विक्स का लेखक हूं।

3
Countdown.js उत्कृष्ट है, और लेखक सुपर-सहायक है (उसने कुछ सुझावों के कारण एक ही दिन में 2 संस्करण जारी किए हैं)!
ओहद श्नाइडर

5
Im डाउन वोटिंग क्योंकि इस जवाब में जुड़ा गितुब मुद्दा सिर्फ एक कभी खत्म नहीं होने वाली राय, इच्छाएं और रिंट्स हैं जो लीड नहीं हैं, जहां मुद्दा 4 साल बाद भी खुला है, कुछ भी
यूजर

29
यह पुस्तकालय में कहीं और इस्तेमाल होने वाले अन्य .format के समान क्यों नहीं हो सकता है? यह पागलपन है। 5 साल और यह अभी भी नहीं किया गया है? वास्तव में?!
834 में क्राइस्टोपोलस

164
// set up
let start = moment("2018-05-16 12:00:00"); // some random moment in time (in ms)
let end = moment("2018-05-16 12:22:00"); // some random moment after start (in ms)
let diff = end.diff(start);

// execution
let f = moment.utc(diff).format("HH:mm:ss.SSS");
alert(f);

JSFiddle पर एक नजर है


3
अच्छी एप्रोच। यद्यपि यह काम नहीं करता है अगर मैं दिनों को भी प्रदर्शित करना चाहता हूं: DDD HH:mm:ss.SSS( जब मैं चाहता हूं DDDवर्ष का दिन) प्रदर्शित करता है । उसके लिए कोई जल्दी ठीक? 10
एंड्रयू माओ

1
कोई आसान तरीका नहीं। मैंने यह jsfiddle.net/fhdd8/14 किया , जो कि शायद आपने किया था, लेकिन मुझे नहीं लगता कि ऐसा कुछ भी है जो इस बॉक्स से बाहर हो
डेविड ग्लास

49
10 क्वाड्रिलियन मिलीसेकंड को मिमी के रूप में प्रदर्शित करने का कोई मतलब नहीं है: एसएस
पियर-ल्यूक गेंड्रेयू

28
यह पिछले 24 घंटे काम नहीं करता (यानी अगर मैं 117 घंटे प्रदर्शित करना चाहता था)। अन्यथा महान समाधान!
फिल

1
@ यदि आप दिन दिखाना चाहते हैं तो आप "D" या "DD" का उपयोग कर सकते हैं।
विनय

71

एमएस और फिर पल में अवधि परिवर्तित करें:

moment.utc(duration.as('milliseconds')).format('HH:mm:ss')

14
तो यह काम नहीं करता है अगर आपकी अवधि 24h से अधिक है .. 24h को 0h पर रीसेट किया जा रहा है
एस। रोबिज्न्स

4
@ S.Robijns एक उपयोगी अवलोकन लेकिन सिर्फ दूसरों के लिए जोर देना - यह है से अपेक्षित व्यवहार .format('HH:mm:ss')डॉक्स देखें
davnicwil

1
यह सबसे अच्छा जवाब है!
मैगिको

44

इस प्लगइन का उपयोग करें गति अवधि प्रारूप

उदाहरण:

moment.duration(123, "minutes").format("h:mm");

1
वह स्वरूपण ठीक से काम नहीं करता है, अवधि पक्ष अच्छा है, लेकिन अगर मैं निर्दिष्ट करता हूं hh:mm:mmऔर केवल 10 सेकंड है, तो 10इसके बजाय दिखाता है 00:00:10(यहां तक ​​कि फ़ॉर्सेलसिटी के साथ) यदि इसका प्रारूपण नहीं है ... तो इसे कुछ और कहा जाना चाहिए, प्रारूप होना चाहिए मानकीकरण किया।
पायोतर कुला

9
@ppumkin मुझे पता है कि यह पुराना है लेकिन यदि आप { trim: false }इसे निर्दिष्ट करते हैं तो यह उस व्यवहार को रोक देगा।
कार्लोस मार्टिनेज

3
यह वह है जिसे मैं उपयोग करना पसंद करता हूं: मान लें कि आपके पास अवधि है, जैसे const duration = moment.duration(value, 'seconds');कि मैं का उपयोग करके स्वरूपित किया जा सकता है: moment.utc(duration.as('milliseconds')).format('HH:mm:ss').toString();
एवगेनी बोबिन

1
@EvgenyBobkin कि अगर आपकी अवधि एक दिन से अधिक समय तक काम नहीं करेगी, तो लाइब्रेरी इसे संभाल
लेगी

16

कोड की इस लाइन का उपयोग करें:

moment.utc(moment.duration(4500, "seconds").asMilliseconds()).format("HH:mm:ss")

8
यदि अवधि 86400 '' (यानी 24 घंटों) की है, तो यह काम नहीं करेगा।
लोरेंजो टासोन

यह एक्सेल में समान है, यह 24 बजे खत्म हो जाएगा। यदि आप 24 घंटे की सीमा के बारे में जानते हैं तो यह एक शानदार समाधान है।
Eman4real

15
var diff = moment(end).unix() - moment(start).unix();
moment.utc(moment.duration(diff).asMilliseconds()).format("HH:mm:ss.SSS");

1
आम तौर पर, उत्तर बहुत अधिक सहायक होते हैं यदि वे इस बात का स्पष्टीकरण शामिल करते हैं कि कोड क्या करने का इरादा है, और क्यों यह समस्या को दूसरों को पेश किए बिना हल करता है। (इस पोस्ट को कम से कम एक उपयोगकर्ता द्वारा चिह्नित किया गया था, संभवतः क्योंकि उन्होंने सोचा था कि स्पष्टीकरण के बिना एक उत्तर को हटा दिया जाना चाहिए।)
नाथन तुग्गी

1
स्पष्टीकरणहीन या नहीं, यह वही है जो मेरे लिए किया था। धन्यवाद :)
dmmd

स्पष्टीकरण की जरूरत नहीं है। Moment.js डॉक्स दिखा सकता है कि यह समाधान कैसे प्राप्त किया गया था।
coffekid

2
निकम्मा। इस प्रश्न के अधिकांश अन्य उत्तरों की तरह, कुल घंटों में आंशिक घंटे लौटते हैं, कुल घंटे नहीं। उदाहरण के लिए 12:00 की अवधि के लिए रिटर्न। अवधि ({दिन: 2, घंटे: 12})
Neutrino

1
क्षण। अवधि (भिन्न) .asMilliseconds () अत्यधिक है। आप बस अंतर का उपयोग कर सकते हैं, यह पहले से ही मिलीसेकंड में है।
३६ पर क्रिस्टोपोलस

12

मेरे विशेष उपयोग के मामले के लिए सबसे अच्छा परिदृश्य था:

var duration = moment.duration("09:30"),
    formatted = moment.utc(duration.asMilliseconds()).format("HH:mm");

यह @ विल्सन के उत्तर पर सुधार करता है क्योंकि यह निजी आंतरिक संपत्ति _data तक नहीं पहुंचता है।


साभार @TaeKwonJoe
कमलेश

11

आप की जरूरत नहीं है। इस तरह उपयोग अवधि:

const duration = moment.duration(83, 'seconds');
console.log(duration.minutes() + ':' +duration.seconds());
// output: 1:23

मुझे यह समाधान यहां मिला: https://github.com/moment/moment/issues/463

संपादित करें:

और सेकंड, मिनट और घंटों के लिए पैडिंग के साथ:

const withPadding = (duration) => {
    if (duration.asDays() > 0) {
        return 'at least one day';
    } else {
        return [
            ('0' + duration.hours()).slice(-2),
            ('0' + duration.minutes()).slice(-2),
            ('0' + duration.seconds()).slice(-2),
        ].join(':')
    }
}

withPadding(moment.duration(83, 'seconds'))
// 00:01:23

withPadding(moment.duration(6048000, 'seconds'))
// at least one day

2
इसमें अग्रणी शून्य शामिल नहीं होंगे यदि
period.seconds

एक घंटे से अधिक सेकंड होने पर क्या होगा? क्या यह ठीक है, कि आपके पास 60 सेकंड से अधिक समय है?
22

अग्रणी शून्य काम करता है, लेकिन duration = moment.duration(7200, 'seconds'); withPadding(duration);"00:00" कहेंगे।
shaedrich

@shaedrich मैंने घंटे शामिल करने के लिए फिर से अपना जवाब अपडेट किया; यदि आपको दिन, सप्ताह, आसो की आवश्यकता है, तो आप उन्हें सरणी में जोड़ सकते हैं
ni-ko-o-kin

1
if (duration.asDays() > 0) { return 'at least one day';- क्या मैं सही ढंग से पढ़ रहा हूं?
स्टीफन पॉल

8

मैं उपयोग करता हूं:

var duration = moment.duration("09:30");
var str = moment(duration._data).format("HH:mm");

और मुझे var str में "09:30" मिलता है।


महान! यह सिर्फ काम करता है ... आप इस धरती पर कैसे आए हैं :)
vanthome

4
इस समाधान से बचें, _dataएक आंतरिक संपत्ति है और चेतावनी के बिना बदल सकती है।
ड्रस्का

1
दुर्भाग्य से यह हमेशा अपेक्षा के अनुरूप काम नहीं करेगा: moment(moment.duration(1200000)._data).format('hh:mm:ss')00:20 के बजाय 12:20
अन्ना आर

2
@AnnaR h1-12 की सीमा में है, इसलिए यह अपेक्षित है। का प्रयोग करें Hबजाय घंटे टोकन - डॉक्स
barbsan

यह गलत है, इतना ही नहीं कि आप DAYS को नजरअंदाज करते हैं, इसलिए 1day और 1hour को 01:00 दिखाया जाएगा। इसके अलावा आप टाइम जोन की पूरी तरह से अनदेखी कर रहे हैं, एक बेहतर समाधान, लेकिन यह भी पूरा नहीं है moment.utc(...).format("HH:mm");
गिल एप्सटेन

5

अगर एक पल अलग है

var diff = moment(20111031) - moment(20111010);
var formated1 = moment(diff).format("hh:mm:ss");
console.log("format 1: "+formated1);

यह समय क्षेत्र और इस तरह के चेहरे में विश्वसनीय नहीं लगता है। क्या आप उत्पादन में इसका उपयोग करते हैं?
कीथ

प्रश्न में समय क्षेत्र का कोई उल्लेख नहीं है।
कीरन

3
हर कोई टाइम ज़ोन में रहता है। क्या हर समय क्षेत्र में पल (0) हमेशा 12:00 पूर्वाह्न के रूप में पंजीकृत होता है?
कीथ

मैं बस यह पूछ रहा हूं कि आपके उत्तर में कोड काम करता है या नहीं क्योंकि मुझे संदेह है। मैंने बहुत सारे कोड लिखे हैं जो कई प्रोग्रामिंग भाषाओं में दिनांक के साथ काम करते हैं। मेरे अनुभव के आधार पर, ऐसा लगता है कि आपका कोड केवल कुछ समय क्षेत्रों में काम करेगा - लेकिन मैं पूछ रहा हूं क्योंकि शायद कुछ ऐसा है जिसके बारे में मुझे पता नहीं है कि जावास्क्रिप्ट यूनिक्स युग के पास तारीखों का प्रतिनिधित्व कैसे करता है।
कीथ

1
दूसरी पंक्ति समय की शुरुआत (1970) से एक पल बनाएगी। यह नहीं चलेगा।
कुमारहर्ष

5

यदि आप एक अलग जावास्क्रिप्ट लाइब्रेरी का उपयोग करने के लिए तैयार हैं, तो numeral.js सेकंड को प्रारूपित कर सकता है (उदाहरण के लिए 1000 सेकंड के लिए):

var string = numeral(1000).format('00:00');
// '00:16:40'

निश्चित रूप से जाने का रास्ता। जैसा सोचा था।
पायोटर कुला

4

मैं इन मामलों में क्लासिक प्रारूप फ़ंक्शन का उपयोग करता हूं:

var diff = moment(end).unix() - moment(start).unix();

//use unix function instead of difference
moment.unix(diff).format('hh:mm:ss')

यह एक हैक है क्योंकि समय का अंतर एक मानक क्षण तिथि, एक प्रारंभिक युग तिथि समय के रूप में माना जाता है, लेकिन यह हमारे लक्ष्य के लिए कोई मायने नहीं रखता है और आपको किसी भी प्लगइन की आवश्यकता नहीं है


4

यदि सभी घंटों को प्रदर्शित किया जाना चाहिए (24 से अधिक) और यदि घंटे से पहले '0' आवश्यक नहीं है, तो कोड की एक छोटी रेखा के साथ स्वरूपण किया जा सकता है:

Math.floor(duration.as('h')) + moment.utc(duration.as('ms')).format(':mm:ss')

4

नी-को-ओ-किन के जवाब पर आधारित :

meassurements = ["years", "months", "weeks", "days", "hours", "minutes", "seconds"];
withPadding = (duration) => {
    var step = null;
    return meassurements.map((m) => duration[m]()).filter((n,i,a) => {
        var nonEmpty = Boolean(n);
        if (nonEmpty || step || i >= a.length - 2) {
            step = true;
        }
        return step;
    }).map((n) => ('0' + n).slice(-2)).join(':')
}

duration1 = moment.duration(1, 'seconds');
duration2 = moment.duration(7200, 'seconds');
duration3 = moment.duration(604800, 'seconds');

withPadding(duration1); // 00:01
withPadding(duration2); // 02:00:00
withPadding(duration3); // 01:07:00:00:00

मुझे नहीं लगता कि यह बहुत पठनीय है। आप यहाँ क्या समस्या हल करना चाहते हैं? आपका usecase क्या है?
नी-को-ओ-किन

मैंने एक दिन से अधिक से निपटने के लिए अपने उत्तर को फिर से अपडेट किया। यह मेरे उपयोग के मामले के लिए ठीक काम करता है।
नी-को-ओ-किन

2
समस्या यह है कि ज्यादातर मामलों में आपका समाधान आदर्श नहीं है क्योंकि इसमें बहुत अधिक अग्रणी शून्य हैं। कौन "00: 00: 00: 00: 01" लौटना चाहता है? मेरा समाधान "स्केलेबल" है और ज़रूरत के अनुसार बस उतना ही अग्रणी शून्य जोड़ता है।
शेदरिक

अच्छी तरह से काम। बहुत ही सरल आउटपुट। यदि कोई दिन नहीं हैं, तो प्रदर्शित दिनों के लिए कोई शून्य नहीं होगा आदि
हसन सेफा ओज़ाल्प

3

स्ट्रिंग के लिए पल की अवधि को प्रारूपित करने के लिए

var duration = moment.duration(86400000); //value in milliseconds
var hours = duration.hours();
var minutes = duration.minutes();
var seconds = duration.seconds();
var milliseconds = duration.milliseconds();

var date = moment().hours(hours).minutes(minutes).seconds(seconds).millisecond(milliseconds);
if (is12hr){
    return date.format("hh:mm:ss a");
}else{
    return date.format("HH:mm:ss");
}

3

यदि आप कोणीय का उपयोग अपने फ़िल्टर में करते हैं:

.filter('durationFormat', function () {
    return function (value) {
        var days = Math.floor(value/86400000);
        value = value%86400000;
        var hours = Math.floor(value/3600000);
        value = value%3600000;
        var minutes = Math.floor(value/60000);
        value = value%60000;
        var seconds = Math.floor(value/1000);
        return (days? days + ' days ': '') + (hours? hours + ' hours ': '') + (minutes? minutes + ' minutes ': '') + (seconds? seconds + ' seconds ': '')
    }
})

उपयोग उदाहरण

<div> {{diff | durationFormat}} </div>

वाकई बहूत बढिया। मैं इस तरह एक 'सुंदर प्रारूप' की तलाश में था। धन्यवाद!
रिक्सेटिंस

3

मेरा समाधान जिसमें कोई अन्य पुस्तकालय शामिल नहीं है और यह diff> 24h के साथ काम करता है

var momentInSeconds = moment.duration(n,'seconds')
console.log(("0" + Math.floor(momentInSeconds.asHours())).slice(-2) + ':' + ("0" + momentInSeconds.minutes()).slice(-2) + ':' + ("0" + momentInSeconds.seconds()).slice(-2))

1

देशी जावास्क्रिप्ट के बारे में कैसे?

var formatTime = function(integer) {
    if(integer < 10) {
        return "0" + integer; 
    } else {
        return integer;
    }
}

function getDuration(ms) {
    var s1 = Math.floor(ms/1000);
    var s2 = s1%60;
    var m1 = Math.floor(s1/60);
    var m2 = m1%60;
    var h1 = Math.floor(m1/60);
    var string = formatTime(h1) +":" + formatTime(m2) + ":" + formatTime(s2);
    return string;
}

1

पल-अवधि-प्रारूप का उपयोग करें ।

ग्राहक ढाँचा (पूर्व: प्रतिक्रिया)

import moment from 'moment';
import momentDurationFormatSetup from 'moment-duration-format';
momentDurationFormatSetup(moment);

const breakLengthInMinutes = moment.duration(breakLengthInSeconds, 's').format('m');

सर्वर (नोड .js)

const moment = require("moment-timezone");
const momentDurationFormatSetup = require("moment-duration-format");

momentDurationFormatSetup(moment);

const breakLengthInMinutes = moment.duration(breakLengthInSeconds, 's').format('m');

0
const duration = moment.duration(62, 'hours');
const n = 24 * 60 * 60 * 1000;
const days = Math.floor(duration / n);
const str = moment.utc(duration % n).format('H [h] mm [min] ss [s]');
console.log(`${days > 0 ? `${days} ${days == 1 ? 'day' : 'days'} ` : ''}${str}`);

प्रिंटों:

2 दिन 14 एच 00 मिनट 00 एस


0
import * as moment from 'moment'
var sleep = require('sleep-promise');

(async function () {
    var t1 = new Date().getTime();
    await sleep(1000); 
    var t2 = new Date().getTime();
    var dur = moment.duration(t2-t1); 
    console.log(`${dur.hours()}h:${dur.minutes()}m:${dur.seconds()}s`);
})();
0h:0m:1s


0

इसका उपयोग पहले दो वर्णों को घंटों और अंतिम दो मिनटों के रूप में प्राप्त करने के लिए किया जा सकता है। सेकंड के लिए एक ही तर्क लागू किया जा सकता है।

/**
     * PT1H30M -> 0130
     * @param {ISO String} isoString
     * @return {string} absolute 4 digit number HH:mm
     */

    const parseIsoToAbsolute = (isoString) => {
    
      const durations = moment.duration(isoString).as('seconds');
      const momentInSeconds = moment.duration(durations, 'seconds');
    
      let hours = momentInSeconds.asHours().toString().length < 2
        ? momentInSeconds.asHours().toString().padStart(2, '0') : momentInSeconds.asHours().toString();
        
      if (!Number.isInteger(Number(hours))) hours = '0'+ Math.floor(hours);
    
      const minutes = momentInSeconds.minutes().toString().length < 2
        ? momentInSeconds.minutes().toString().padEnd(2, '0') : momentInSeconds.minutes().toString();
    
      const absolute = hours + minutes;
      return absolute;
    };
    
    console.log(parseIsoToAbsolute('PT1H30M'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>


यदि आप कोड को स्निपेट के रूप में सम्मिलित करते हैं, तो आप विधि का परीक्षण करने और कंसोल को कुछ आउटपुट दिखाने में सक्षम होंगे।
डीजेडेवार्क

ज़रूर! बस त्वरित परीक्षणों के लिए स्निपेट के साथ अपडेट किया गया।
जोस लुइस रैफल्ली

0

moment.duration(x).format()पदावनत कर दिया गया है। आप moment.utc(4366589).format("HH:mm:ss")वांछित प्रतिक्रिया प्राप्त करने के लिए उपयोग कर सकते हैं ।

console.log(moment.utc(4366589).format("HH:mm:ss"))
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


0

कैसे सही ढंग से क्षणों का उपयोग करें? | कोड में moment.duration () का उपयोग करें

सबसे पहले आप आयात करने की आवश्यकता momentहै और moment-duration-format

import moment from 'moment';
import 'moment-duration-format';

फिर, अवधि फ़ंक्शन का उपयोग करें। हमें उपरोक्त उदाहरण लागू करें: 28800 = 8 पूर्वाह्न।

moment.duration(28800, "seconds").format("h:mm a");

.Well, आपको ऊपर प्रकार की त्रुटि नहीं है। 🤔क्या आपको सुबह 8:00 बजे एक सही मूल्य मिलेगा? नहीं…, आपको मिलने वाला मूल्य 8:00 a है। Moment.js प्रारूप काम नहीं कर रहा है जैसा कि माना जाता है।

Onds समाधान सेकंड को मिलीसेकंड में बदलने और यूटीसी समय का उपयोग करना है।

moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format('h:mm a')

ठीक है अब हम 8:00 बजे मिलते हैं। यदि आप अभिन्न समय के लिए 8:00 बजे के बजाय 8 बजे चाहते हैं, तो हमें RegExp करने की आवश्यकता है

const time = moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format('h:mm a');
time.replace(/:00/g, '')

0

मुझे इस प्रारूप में घंटे प्रदर्शित करने की आवश्यकता के रूप में काम करने के लिए ऐसा करने की आवश्यकता थी। पहले तो मैंने यही कोशिश की।

moment.utc(totalMilliseconds).format("HH:mm:ss")

हालाँकि 24 घंटे से अधिक कुछ भी हो सकता है और घंटे 0. पर रीसेट हो जाते हैं, लेकिन मिनट और सेकंड सटीक थे। इसलिए मैंने केवल मिनट और सेकंड के लिए उस हिस्से का उपयोग किया।

var minutesSeconds = moment.utc(totalMilliseconds).format("mm:ss")

अब मुझे कुल घंटे की आवश्यकता है।

var hours = moment.duration(totalMilliseconds).asHours().toFixed()

और उस प्रारूप को प्राप्त करने के लिए जो हम सभी चाहते हैं कि हम इसे केवल एक साथ गोंद करें।

var formatted = hours + ":" + minutesSeconds

अगर totalMillisecondsहै 894600000यह वापस आ जाएगी249:30:00

उम्मीद है कि मदद की। टिप्पणियों में किसी भी प्रश्न को छोड़ दें। ;)


-1

यदि आप Angular> 2 का उपयोग करते हैं, तो मैंने @ hai-alaluf उत्तर से प्रेरित एक पाइप बनाया।

import {Pipe, PipeTransform} from "@angular/core";

@Pipe({
  name: "duration",
})

export class DurationPipe implements PipeTransform {

  public transform(value: any, args?: any): any {

    // secs to ms
    value = value * 1000;
    const days = Math.floor(value / 86400000);
    value = value % 86400000;
    const hours = Math.floor(value / 3600000);
    value = value % 3600000;
    const minutes = Math.floor(value / 60000);
    value = value % 60000;
    const seconds = Math.floor(value / 1000);
    return (days ? days + " days " : "") +
      (hours ? hours + " hours " : "") +
      (minutes ? minutes + " minutes " : "") +
      (seconds ? seconds + " seconds " : "") +
      (!days && !hours && !minutes && !seconds ? 0 : "");
  }
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.