Moment: अवधि गायब सुविधाएँ

को निर्मित 10 अक्तू॰ 2012  ·  186टिप्पणियाँ  ·  स्रोत: moment/moment

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

आपको एक उदाहरण देने के लिए, हम हवाई जहाज के टिकट के लिए कुछ लोगों की दुकान बना रहे हैं। duration.humanize() फ़ंक्शन हमारे लिए इंप्रेस करने का तरीका है।

उदाहरण के लिए जब 12:00 पर निकलते हैं और 13:30 पर उतरते हैं। यह इसे 2 घंटे के लिए राउंड करेगा। लेकिन हमें कुछ इस तरह की ग्रैन्युलैरिटी की जरूरत है, जो पल-पल गायब है।

उच्चतम मूल्य से शुरू होने वाले 1 स्तर तक मानवीकरण डिफ़ॉल्ट हो सकता है।

// 1:30
duration.humanize()
2 hour
duration.humanize({precision: 2})
1 hour 30 minutes
duration.humanize({precision: 3})
1 hour 30 minutes 0 seconds

दूसरी समस्या तब होती है जब संख्या 0. होती है। मोमेंटेज इसका "कुछ सेकंड" के रूप में अनुवाद करता है। मुझे यकीन नहीं है कि इसे कैसे हासिल किया जा सकता है लेकिन किसी तरह की फॉर्मेटिंग करना अच्छा होगा।

// 3 days and 0 minutes
duration.format('D [and] M')
> 3 days and 0 minutes
duration.format('H [and] M')
> 72 hours and 0 minutes
duration.format('H [and] m')
> 72 hours and few minutes

इस तरह से उच्चतम मूल्य को प्रारूप में मैप किया जा सकता है। इसलिए यदि 1 वर्ष भी है, तो प्रारूप हमें बताता है कि इसे सही तरीके से कैसे प्रदर्शित किया जाए। मैं इसके लिए प्रतिबद्ध होने पर खुशी मनाऊंगा क्योंकि यह बहुत उपयोगी है और जब हाथ पहले से ही स्थानीयकरण को खराब महसूस करते हैं तो इसे हाथ से करना होगा।

New Feature

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

2019, अभी भी इस सुविधा की जरूरत है।

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

इस अनुरोध पर +1

@llacroix , क्या आप इसके लिए पुल अनुरोध लिखने में रुचि लेंगे?

हाँ शायद, मैं उसके लिए समय निकालने की कोशिश करूँगा। इसे क्षणों में जोड़ना संभवतः लंबे समय में खुद को और दूसरों के समय को बचाएगा। वर्तमान में यह मुझे हर जगह किसी न किसी तरह की गंदगी पैदा करने के लिए मजबूर करता है और यह सही नहीं है। क्षणों को ठीक करना अधिक उचित लगता है।

लेकिन हमें शायद थोड़ा और चर्चा करनी चाहिए कि किस तरह का प्रारूप होना चाहिए। उदाहरण के लिए, 0 मान प्रदर्शित होना चाहिए या नहीं।

4 hours 20 seconds या 0 days 4 hours 0 minutes 20 seconds

महीने 30 दिन, एक साल 365 होंगे।

और वर्ष, महीने, सप्ताह, दिन, मिनट, दूसरे और मिलीसेकंड के अलावा अन्य कौन से प्रारूप मौजूद होने चाहिए।

इसके लिए +1
लेकिन हाँ, स्वरूपण यहाँ एक महत्वपूर्ण समस्या है। मानवीकरण और प्रारूप निश्चित रूप से दोनों की आवश्यकता है।
मानवीय व्यवहार के लिए कुछ सुझाव:
// 1:30
duration.humanize ();
1 घंटा 30 मिनट
अवधि। निर्धारित करें ({दौर: "घंटे"})
2 घंटे
अवधि। निर्धारित करें ({दौर: "मिनट"})
1 घंटा 30 मिनट
अवधि.समरण ({दौर: "सेकंड"})
1 घंटा 30 मिनट 0 सेकंड

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

// 1 घंटा 0 मिनट 45 सेकंड
अवधि.मान () -> 1 घंटा
// 1 घंटा 1 मिनट 0 सेकंड
अवधि। निर्धारित करें () -> 1 घंटा और 1 मिनट
// 1 घंटा 1 मिनट 10 सेकंड
अवधि। निर्धारित करें () -> 1 घंटा 1 मिनट और 10 सेकंड

इसके अलावा, "और" विभाजक का उपयोग अंतिम जुड़ाव के लिए किया जाना चाहिए, जो व्हाट्सएप द्वारा पूर्ववर्ती है
2 महीने 6 दिन 7 घंटे और 36 मिनट

यह मैं कैसे कल्पना करता हूं कि फ़ंक्शन को डिफ़ॉल्ट रूप से व्यवहार करना चाहिए

यहाँ हस्ताक्षर और कार्यान्वयन के लिए मेरा सुझाव है।

var duration = moment.duration({
    hours : 1,
    minutes : 0,
    seconds : 20,
    milliseconds : 0
});
duration.countdown(); // 1 hour 0 minutes 20 seconds
duration.countdown(1); // 1 hour
duration.countdown(2); // 1 hour and 0 minutes
duration.countdown(3); // 1 hour 0 minutes and 20 seconds

जैसा कि @sylvainpolletvillard ने सुझाव दिया है, हम शून्य मानों को बंद करने के लिए एक पैरामीटर जोड़ना चाहते हैं। शायद ऐसा कुछ हो।

duration.countdown(3); // 1 hour 0 minutes and 1 second
duration.countdown(3, true); // 1 hour

हम moment.fromNow(Boolean) जैसे प्रत्यय के लिए एक पैरामीटर जोड़ना चाहते हैं।

duration.countdown(3); // 1 hour 0 minutes and 1 second ago
duration.countdown(3, null, true); // 1 hour ago

हम इसे अंग्रेजी के लिए कुछ हद तक आसानी से बना सकते हैं, लेकिन सभी अलग-अलग भाषाओं में इन सभी तारों को सही ढंग से जोड़ना बहुत मुश्किल होगा।

हमें शायद खुद को तार-तार करने के लिए भाषाओं के लिए कॉलबैक बनाने होंगे। ये नियम शायद बहुत जटिल होंगे (मैं आपको देख रहा हूं, पॉल )।

मुझे लगता है कि इन मूल्यों को पारित करने का सबसे अच्छा तरीका निम्नलिखित जैसा होगा।

var keys    = [     "h",        "mm",          "s"],
    values  = [       1,           0,           20],
    strings = ["1 hour", "0 minutes", "20 seconds"];

lang.countdown(keys, values, strings, addSuffix);

तब अंग्रेजी अनुवाद कुछ इस तरह होगा:

lang.countdown = function (keys, values, strings, addSuffix) {
    var i, output = "";

    for (i = 0; i < strings.length; i++) {
        if (i === strings.length - 1 && strings.length > 1) {
            output += "and ";
        }
        output += strings[i] + " ";
    }
    if (addSuffix) {
        output += "ago";
    }
}

सभी के सभी, यह एक अविश्वसनीय रूप से जटिल जोड़ बन जाता है जिसके लिए 33 अनुवाद कार्यों और कोर में एक अधिक कोड की आवश्यकता होती है। इसके अलावा, मुझे यकीन नहीं है कि यह कितनी बार उपयोग किया जाएगा, इसलिए यह सभी के लिए सभी ब्लोट को जोड़ रहा है।

शायद यह सबसे अच्छा एक प्लगइन में ले जाया जाएगा?

इस अवधि को प्रारूपित करने पर चर्चा पर वापस जाना मुझे लगता है कि यह बहुत अच्छा होगा यदि ऐसा कुछ संभव हो सकता है -

moment.duration(9483000).format('d h m s') // 1 day 2 hours 20 minutes 30 seconds  
moment.duration(9483000).format('h m s') // 26 hours 20 minutes 30 seconds 
//etc...  

शायद यह निर्धारित करने के लिए प्रारूप विधि में एक बूलियन पैरामीटर प्रदान करना कि क्या 0 मान दिखाए गए थे या नहीं?

सीएलडीआर में एक सूची प्रारूपण योजना और डेटा है, जो कई भाषाओं के लिए इस्तेमाल किया जा सकता है, शायद कई भाषाओं को अभी भी कस्टम कॉलबैक की आवश्यकता होगी:

http://cldr.unicode.org/development/development-process/design-proposals/list-formatting

मैं प्रारूप समारोह के लिए बहुत सुंदर हूं। चूंकि कई भाषाओं का अनुवाद लागू करना काफी कठिन हो सकता है। प्रारूपों का उपयोग करना लागू करने में काफी आसान होना चाहिए।

बोलो तुम्हें चाहिए

moment.duration(9483000).format('d h m s') // 1 day 2 hours 20 minutes and 30 seconds  
// English  => 'd h m [and] s' 1 day 2 hours 20 minutes and 30 seconds
// French   => 'd, h, m [et] s'   1 jour, 2 heures, 20 minutes et 30 secondes
// Russian  => 'd h m [и] s'   1 день 2 часа 30 минут и 30 секунд

विशेष कॉलबैक की आवश्यकता नहीं है, लेकिन सिर्फ विशेष प्रारूप के तार हैं।

प्रस्तावित duration.countdown() और duration.countdown(1) विधियां बिल्कुल वही हैं जो मैं खोज रहा हूं (यानी अब मैं अपने कोड में क्या कर रहा हूं)।

इस बीच, अवधि प्रोटोटाइप का विस्तार करने का एक तरीका है?

अवधि का प्रोटोटाइप moment.duration.fn moment.fn

मैं पिछले साल # 143 / # 192 पर कुछ इसी तरह काम कर रहा हूं। टिम ने एक प्लगइन का सुझाव दिया लेकिन मैंने इसे करने के लिए कभी समय नहीं लिया।

मैं अपना काम रिबूट करने वाला था। मुझे नई अवधारणाओं जैसे कि अवधि वस्तुओं आदि के लिए अद्यतन करना था ... मैं यह टिकट और अन्य थे। अब मैं जागीर पर संघर्ष कर रहा हूं और अभी भी इसकी जरूरत है और यदि हां तो हमें इसे कैसे लागू करना चाहिए।

मैं किसी के जूतों पर कदम नहीं रखना चाहता, इसलिए अगर मुझे मदद मिल सकती है तो मैं उससे मिलूंगा। अभी उस मुद्दे पर कौन काम कर रहा है?

मेरा कोड निरंतर इकाइयों और उस जैसी गैर-निरंतर इकाइयों को प्रारूपित करने में सक्षम था:

test.equal(moment([2012, 0, 1]).diff([2011, 0, 1], 'years\\y'), "1y");
test.equal(moment([2012, 0, 1]).diff([2011, 0, 1], 'months[m]'), "12m");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'months [months] days [days]'), "50 months 19 days");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years \\y months \\M days \\d'), "4 y 2 M 19 d");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years[y] days[d]'), "4y 80d");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years [years] weeks [weeks]'), "4 years 11 weeks");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'years\\y weeks\\w [and] days [days]'), "4y 11w and 3 days");
test.equal(moment([2016, 0, 20]).diff([2011, 10, 1], 'days\\d'), "1541d");

यह उन इकाइयों को नहीं संभालता था जो 'days years' जैसे क्रम में नहीं थे। यह शून्य मानों को हटाने का काम भी नहीं करता था।

यह बहुत अच्छा लग रहा है, बिल्कुल उसी तरह की चीज जिसकी मुझे उम्मीद थी!

यह निश्चित रूप से सभी के लिए एक आवश्यक विशेषता है।

इसकी जरूरत है!

आप में से कुछ के लिए एक संभावित स्टॉपगैप के रूप में, मैंने एक सरल प्लगइन बनाया है जो आपको उलटी गिनती का उपयोग करने की अनुमति देता है। सीधे मोमेंट से:

moment("1982-5-25").countdown().toString(); // => '30 years, 10 months, 14 days, 2 hours, 23 minutes, and 50 seconds'

यह आपके द्वारा पास किए गए किसी भी उलटी गिनती विकल्पों से गुजरता है, जैसे कि क्या इकाइयों का उपयोग करना है और कितनी सटीकता के साथ (आप काउंटडाउन डॉक्स को देख सकते हैं)। वैसे भी, प्लगइन यहाँ है: https://github.com/icambron/moment-countdown

@icambron आपके काउंट्रीब्यूटन के लिए धन्यवाद! यह बहुत मददगार है!

मैंने अभी-अभी क्षणों का उपयोग करना शुरू किया है। जेएस और बहुत जल्दी इस सटीक समस्या का सामना करना पड़ा। यह वह कोड है जिसे मैंने इसे हल करने के लिए उपयोग किया है:

moment.duration.fn.format = function (input) {
    var output = input;
    var milliseconds = this.asMilliseconds();
    var totalMilliseconds = 0;
    var replaceRegexps = {
        years: /Y(?!Y)/g,
        months: /M(?!M)/g,
        weeks: /W(?!W)/g,
        days: /D(?!D)/g,
        hours: /H(?!H)/g,
        minutes: /m(?!m)/g,
        seconds: /s(?!s)/g,
        milliseconds: /S(?!S)/g
    }
    var matchRegexps = {
        years: /Y/g,
        months: /M/g,
        weeks: /W/g,
        days: /D/g,
        hours: /H/g,
        minutes: /m/g,
        seconds: /s/g,
        milliseconds: /S/g
    }
    for (var r in replaceRegexps) {
        if (replaceRegexps[r].test(output)) {
            var as = 'as'+r.charAt(0).toUpperCase() + r.slice(1);
            var value = new String(Math.floor(moment.duration(milliseconds - totalMilliseconds)[as]()));
            var replacements = output.match(matchRegexps[r]).length - value.length;
            output = output.replace(replaceRegexps[r], value);

            while (replacements > 0 && replaceRegexps[r].test(output)) {
                output = output.replace(replaceRegexps[r], '0');
                replacements--;
            }
            output = output.replace(matchRegexps[r], '');

            var temp = {};
            temp[r] = value;
            totalMilliseconds += moment.duration(temp).asMilliseconds();
        }
    }
    return output;
}

इस कोड की विशेषताएं:

  • http://momentjs.com/docs/#/displaying/format/ पर वर्णित समान प्रारूप वर्णों का उपयोग करता है
  • अवधि के किसी भी विशेषता के लिए जितने चाहें उतने प्रमुख शून्य आउटपुट, उदाहरण के लिए:
d=moment.duration({hours:1,minutes:1,seconds:1});
d.format('HHH:mm:ss');
"001:01:01"
  • यदि आप अपने इनपुट टेम्प्लेट में किसी वर्ण को छोड़ते हैं, और उसके बाद के वर्ण का मान सामान्य से बड़ा होता है, तो यह पिछले को इसमें जोड़ता है, जैसे:
d=moment.duration({days:1, hours:1, minutes: 1});
d.format('H:mm:ss');
"25:01:00"

संभावित समस्याएं:

  • asXxxx से प्राप्त मूल्यों पर Math.floor का उपयोग करता है, जैसे:
Math.floor(moment.duration(milliseconds)).asHours()
  • इसका मतलब यह होगा कि यदि उदाहरण के लिए, अवधि में मिनट या सेकंड के लिए मान हैं, लेकिन आप घंटे के लिए प्रारूप फ़ंक्शन पूछते हैं, तो यह गोल नहीं होगा, यह हमेशा नीचे होगा।

इस अनुरोध के लिए +1

व्यक्तिगत तौर पर मैं इसे और अधिक समझ में आता है को लागू करने के बारे में सोच .format() के लिए कुछ फैंसी नियमों की तुलना में विधि .humanize() या एक बनाने के लिए .countdown() विधि। 95% मुद्दों को .format() साथ हल किया जा सकता है।

मैं मानता हूं कि .humanize() को अधिक सटीकता की पेशकश करनी चाहिए लेकिन यह एक अलग विशेषता होनी चाहिए।

फ़ॉर्मेटिंग अवधि एक होनी चाहिए। तैयार स्ट्रिंग में सेकंड का अनुवाद करना आसान होना चाहिए।

मैं कठोर कोड की कोशिश करता हूं लेकिन:
d = moment.duration ({दिन: 1, घंटे: 1, मिनट: 1}); d.format ( 'DH: mm: ss');
"1 -215: 01: 00"

+1 format()

एक usecase के रूप में, समय परीक्षा (3 घंटे) में उपयोग की जाने वाली Durations को hh: mm (: ss) या तो के रूप में आसानी से स्वरूपित किया जा सकता है, जो कि इतना आसान होगा। अभी, मोमेंट में वैसा ही करना काफी कठिन है, जब तक कि मैं वैनिला जेएस में डब नहीं करूंगी :)

+1 अवधि प्रारूप!

यहाँ एक त्वरित सुधार है जिसका मैंने उपयोग किया है:

moment.duration.fn.format = function(){
    str = ""
    if(this.days() > 1) str = str + Math.floor(this.days()) + "d "
    if(this.hours() > 1) str = str + Math.floor(this.hours()) + "h "
    if(this.minutes() > 1) str = str + Math.floor(this.minutes()) + "m "
    if(this.seconds() > 1) str = str + Math.floor(this.seconds()) + "s "
    return str
    }

: +1: duration.format()

: +1: period.format () के लिए भी

इस पीआर की स्थिति क्या है? क्या यह दूर है?

Code Bounty

मैं थोड़ी देर के लिए दूर हो गया ... लगभग एक साल जो मैंने इस मुद्दे को बनाया। मै उसे करने की एक कोशिश तो करूंगा। मैं पल पल js और इस मुद्दे को अद्यतन करने के लिए जैसे ही मेरे पास परीक्षण / समीक्षा के लिए कुछ होगा। मुझे दो दिनों में एक परीक्षा के लिए खुद को तैयार करना होगा। इसलिए यह संभावना नहीं है कि दो दिनों के भीतर कुछ दिखाई देगा। उस ने कहा, मैं इस पर काम कर रहा हूँ।

@llacroix धन्यवाद :)

: +1: अवधि के लिए। सुधार ()

 क्षण। अवधि ।fn.format = फ़ंक्शन (शून्य, दोडिट) {
 var घंटे = this.hours (), मिनट = this.minutes (), सेकंड = this.seconds ();
 var displayFormat = '', zerosFormat = twoDigit? '00': '0', पैडलेफ्ट = टूडिजिट? -2: -1;
 अगर (घंटे || शून्य) {
 displayFormat + = (zerosFormat + hours) .slice (padLeft) + 'h';
 }
 अगर (मिनट || शून्य) {
 displayFormat + = (zerosFormat + मिनट) .slice (पैडलेफ्ट) + 'मिनट';
 }
 अगर (सेकंड || शून्य) {
 DisplayFormat + = (zerosFormat + seconds) .slice (padLeft) + 's';
 }
 वापसी $ .trim (displayFormat);
 }

+1 अवधि प्रारूप।

+1 अवधि। सुधार

+1 अवधि। सुधार

मुझे वास्तव में व्यापक अवधि के प्रारूपण की आवश्यकता थी, इसलिए मैंने यहां और स्टैकऑवरफ़्लो पर थ्रेड्स की समीक्षा की और इसे लागू करने के लिए आज बैठ गया।

मैं अभी भी एक छोटे से विवरण के माध्यम से काम कर रहा हूं, लेकिन कोर किया जाता है और ठोस होता है। मुझे अगले कुछ दिनों में कोड और कल्पना और उदाहरण यहां मिलेंगे। मूल विचार यह है कि आपके पास कोई भी मनमाना अवधि हो सकती है और इसे स्ट्रिंग के साथ प्रारूपित कर सकते हैं जैसे क्षण प्रारूप प्रारूप स्ट्रिंग, जैसे। period.format ("d [d] hh: mm: ss") -> 2d 03:47:24

आप अंतिम मूल्य पर मनमानी दशमलव परिशुद्धता को भी परिभाषित कर सकते हैं, जैसे। period.format ("h [hrs]", 3) -> 42.384 hrs

अवधि के लिए +1.फॉर्मेट

मैंने अपना क्षण पोस्ट किया है।
https://github.com/jsmreese/moment-duration-format

परीक्षण मामले और कुछ उदाहरण परियोजना में हैं।
मेरा प्लगइन लॉश और अंडरस्कोर.स्ट्रिंग पर निर्भर है।

+1 अवधि.फॉर्मेट ()

यह टिकट अब से एक साल पहले खोला गया है। मुझे संदेह है कि इसे कभी भी लागू किया जाएगा।

@ Maxwell2022 मैंने एक पल पहले पोस्ट किया था। सुधार प्लगइन एक हफ्ते पहले या तो:
https://github.com/jsmreese/moment-duration-format

क्या वह आपके लिए काम करेगा?

इसके साथ ही +1 भी। अन्यथा एक व्यापक पुस्तकालय में बहुत ध्यान देने योग्य चूक की तरह लगता है।

https://github.com/rmm5t/jquery-timeago इस बात के लिए एक अच्छा खाका हो सकता है कि हम इसे मोमेंट में कैसे लागू कर सकते हैं ...

@schmod मैंने पिछले महीने एक moment.duration.format प्लगइन पोस्ट किया था:
https://github.com/jsmreese/moment-duration-format

क्या यह आपके उपयोग के मामलों के लिए काम करता है?

: +1:!

यह मेरे लिए काम करेगा (लेकिन 24 घंटे के लिए नहीं होगा):

moment.duration.fn.format = function(format) {
  return moment(this.as('milliseconds')).format(format);
}

@jsmreese आपका https://github.com/jsmreese/moment-duration-format LoDash पर निर्भर होना एक वास्तविक शोस्टॉपर है। हम पहले से ही अंडरस्कोर का उपयोग करते हैं, और मैं सिर्फ इस छोटी सी सुविधा के लिए LoDash के लिए एक स्विच का औचित्य नहीं कर सकता। यदि आपका प्लगइन दोनों से स्वतंत्र था, तो मुझे लगता है कि बहुत सारे लोगों के लिए यह अधिक व्यवहार्य विकल्प होगा।

@ व्हेल्पर बिल्कुल सहमत हैं।

मेरा वातावरण LoDash और Underscore.String का उपयोग करने के लिए होता है, इसलिए मैंने उन पुस्तकालयों से विधियों का उपयोग किया - मुझे कुछ महीने पहले अपने पहले संस्करण की आवश्यकता थी और बस इसे लागू करने और वहां से बाहर निकालना चाहता था।

मैं उन आश्रितों को शीघ्र ही हटा दूँगा।

@ स्लीपर अंडरस्कोर और LoDash इंटरकम्पैटिबल होने के लिए होते हैं। जब तक @jsmreese LoDash के अंडरस्कोर बिल्ड में कुछ भी उपयोग नहीं कर रहा है, तब तक आपको उसके प्लगइन का उपयोग करने में सक्षम होना चाहिए, जैसे कि बिना किसी परेशानी के।

@ input8908 यह बात है, और @wleeper सही है - मैं _am_ LoDash की सुविधाओं का उपयोग कर रहा हूं जो अंडरस्कोर बिल्ड का हिस्सा नहीं हैं।

मैंने अंडरस्कोर को हटा दिया है। निर्भरता को कम कर रहा हूं, और मैं अंडरस्कोर संगतता पर काम कर रहा हूं।

हालाँकि, पल-अवधि-प्रारूप प्लगइन इन समस्याओं में से एक को हल करता है, मुझे लगता है कि हमें एक दृष्टिकोण की आवश्यकता है जो स्थानों पर काम करता है (जो कि, वास्तव में, बहुत अधिक कठिन है)।

मुझे लगता है कि हमें # 1241 को लागू करने पर काम करने की आवश्यकता है, जो मानव-पढ़ने योग्य तिथियों, तिथियों, और स्थानों पर सूचियों के प्रतिपादन के संदर्भ में बहुत सारे दरवाजे खोलेंगे। formatDuration को लागू करने के लिए काफी तुच्छ होगा यदि पल में CLDR भाषा डेटा तक पहुंच हो।

jQuery का Globalize पुस्तकालय समान मुद्दों में से कई से निपटने पर काम कर रहा है, और उनके साथ सहयोग करना तर्कसंगत लगता है। ट्विटर के पास पहले से ही एक बहुत व्यापक पुस्तकालय है जो इस तरह की बहुत सारी चीजें करता है ...

ठीक है, यहाँ CLDR के शीर्ष पर एक कार्यान्वयन योग्य एपीआई है। तुम क्या सोचते हो?

duration:human(bool) // future/past dep/indep
duration:human({
  with(=min+max): 'hours'|'minutes'|'seconds',
  min: 'hours',
  max: 'days',
  float: bool,
  length: "long|short|narrow",
  abs: bool
})
  • न्यूनतम: उपयोग करने के लिए न्यूनतम इकाई क्या है। मिनट: दिन, का अर्थ है कि घंटे, मिनट, सेकंड मत कहो, लेकिन यदि दिन एक दिन से कम है तो दिनों के लिए गोल
  • अधिकतम: उपयोग करने के लिए अधिकतम इकाई क्या है। अधिकतम: दिन, का अर्थ है महीनों और वर्षों का उपयोग न करना, बल्कि संबंधित दिनों की संख्या
  • लंबाई: टोकन का आकार: दिन अंग्रेजी के लिए बनाम
  • abs: भविष्य / अतीत स्वतंत्र

: +1: +1

: +1:

+1 अवधि। सुधार

+1 अवधि। सुधार

+1

+1

+1

कुछ के रनटाइम को प्रदर्शित करने के लिए ऐसा करना चाहेंगे।

+1

https://github.com/jsmreese/moment-duration-format

पल-अवधि-प्रारूप संस्करण 1.2.1 एनपीएम पर प्रकाशित हुआ है।
यह Node.js और Browser दोनों में कार्यात्मक है।
यह लो-डैश या अंडरस्कोर पर निर्भर करता है, लेकिन अब दोनों के साथ परीक्षण और कार्यात्मक है।
मूल अंडरस्कोर.ट्रिंग निर्भरता को हटा दिया गया है।

जैसे ही वर्तमान बोवर पैकेज रजिस्टर / अपंजीकृत मुद्दों को हल किया जाता है, मैं इस संस्करण को बोवर को प्रकाशित कर दूंगा।

अवधि प्रारूप के लिए +1

पुस्तकालय का एक हिस्सा बनने के लिए इसे पसंद करेंगे।

+1

+1

+1

: +1:

अवधि के लिए +1.फॉर्मेट ()

+1

ओह हाँ, मैं निश्चित रूप से अग्रणी शून्य मानों के साथ आउटपुट के लिए moment.duration(3, 'seconds').get('ss') करने में सक्षम होने के लिए कम से कम अंदर रहूंगा।

इस अनुरोध की स्थिति क्या है? उस पर प्रगति करने के लिए क्या मदद चाहिए?

@oncletom
यह मौजूद है: https://github.com/jsmreese/moment-duration-format/
और क्या आप चाहते हैं, अगर आप लो-डैश या अंडरस्कोर पर निर्भरता को बुरा नहीं मानते हैं।
किसी दिन जल्द ही मैं उस निर्भरता को दूर करने के लिए कुछ समय दूंगा ...

आश्चर्य हुआ कि https://github.com/jsmreese/moment-duration-format/ जब humanize है, तो stdlib में नहीं है। मुझे लगता है कि कम से कम आश्चर्य के सिद्धांत का उल्लंघन होता है। बहुत कम से कम, एक साधारण संख्यात्मक प्रारूप में वापस आना संभव होना चाहिए:

moment.duration(123, "minutes").format();
// "2:03:00"

अभी के लिए मैं उपयोग कर रहा हूँ:

moment.utc(moment.duration(300 * 1000).asMilliseconds()).format("HH:mm:ss.SSS")
// 00:05:00.000

क्षणों के हिस्से के रूप में जल्द ही इसे देखना पसंद करेंगे। js

+1

+1

संबंधित नोट पर, duration.toString() [Object object] रिटर्न मिलता है। क्या यह humanize() नहीं लौटाना चाहिए?

+1 इस पर अधिक नियंत्रण रखना पसंद करेगा।

+1

बस मोमेंट ड्यूरेशन प्रारूप 1.3.0 प्रकाशित किया गया है, जो लो-डैश या अंडरस्कोर पर पिछली निर्भरता को हटाता है। अब केवल निर्भरता Moment.js ही है।

https://github.com/jsmreese/moment-duration-format/

@jsmreese अच्छा आदमी! :बियर:

@ जज़ीरेस कूल। !
यह क्षण का हिस्सा क्यों नहीं है। खुद ही, मुझे नहीं मिला। मानवीकरण सटीकता के बिना इतना उपयोगी नहीं है, मैं 1 घंटे के लिए 30 घंटे और 30 मिनट के चक्कर क्यों लगाना चाहूंगा? .. इसके लिए कोई उपयोग मामला नहीं है।

+1, jsmreese द्वारा प्लगइन शानदार ढंग से काम करता है लेकिन अगर यह क्षण का हिस्सा होता तो अच्छा होता। js।

+1। यह सुविधा अंदर और बाहर मानवीकृत होनी चाहिए।

अवधि के लिए +1.फॉर्मेट

@jsmreese ने एक साल पहले अपने प्लगइन को प्रकाशित किया था, और यह मुद्दा दो साल पहले खोला गया था। @timrwood @ichernev क्या हम इसे मुख्य क्षण में

+1

+1

: +1: period.format के लिए

+1

: +1:

+1

इसकी वर्तमान स्थिति क्या है?

शायद अनुचर हमें १०००, या नए साल की पूर्व संध्या तक पहुंचने तक इंतजार कर रहा है? @icambron

@gkatsanos - मैं मोमेंट (और मैं हमेशा सिर्फ एक सहायक था) को बनाए रखने में मदद करने के लिए सक्रिय नहीं हूं, लेकिन मेरी सिफारिश एक अच्छी तरह से परीक्षण किया गया अनुरोध है। निश्चित रूप से कोई है जो इसे वास्तव में कोड करने के लिए तैयार है।

@icambron यह पहले से ही एक प्लगइन के रूप में मौजूद है .. और क्या करना है?
कौन अनुरक्षक btw है?

@icambron क्या आप प्लगइन को इंगित कर सकते हैं?

और यह एक बहुत अच्छी तरह से आकार का प्लगइन लगता है। तथ्य यह पर निर्भर करता है सिवाय lodash के बजाय underscore , वहाँ किसी भी अन्य चीजें हैं जो पीआर के रूप में यह सुनिश्चित करने के लिए रोकने के हैं .. से बंदरगाह हो रहा है lodash करने के लिए underscore उतना मुश्किल नहीं होना चाहिए। / cc @jsmreese

@alexanderbeletsky @gkatsanos असल में मैं हटा दिया lodash या underscore निर्भरता थोड़ी देर पहले।

Moment.js कोर में शामिल किए जा रहे मेरे प्लगइन के लिए प्रमुख बाधाओं में से एक पूर्ण i18n समर्थन की कमी है।

और यह मेरे लिए एक बड़ी चिंता है, व्यक्तिगत रूप से। समर्थित कई भाषाएँ मेरे लिए बहुत बड़ी बात हैं, और मैं ऐसी स्थिति में आने से नफरत करूँगा जहाँ फ़ीचर A किसी भी भाषा में काम करता हो, लेकिन फ़ीचर B केवल अंग्रेज़ी में है।

@jsmreese शायद अगर आपकी रिपॉजिटरी में कुछ अच्छी तरह से परिभाषित कार्य बनाएं, तो वास्तव में क्या करने की आवश्यकता है - मैं निश्चित रूप से मदद करने के लिए

@mattgrande @alexanderbeletsky प्रारूप टोकन अनुकूलन पहले से ही कर रहे हैं, और प्रारूप टेम्पलेट, मनमाना है ताकि कोई मुद्दा नहीं है।

डिफ़ॉल्ट प्रारूप टेम्पलेट किसी भी तरह से स्थानीयकृत नहीं हैं, और आप दशमलव बिंदु को स्थानीय नहीं कर सकते हैं या मूल्यों पर किसी भी प्रकार की स्थानीयकृत स्वरूपण जोड़ सकते हैं। वह सब मेरे सिर के ऊपर से गायब है।

: +1:

+1 अवधि। सुधार!

sooo .... वाट इस के साथ सौदा है?

बस कुछ बातों पर ध्यान देने के लिए छोड़ रहे हैं, क्योंकि यहाँ एक लाख टिप्पणियों की तरह हैं। मैं अनुचर नहीं हूं और अब इस परियोजना में सक्रिय नहीं हूं, लेकिन मैं दो चीजों के बारे में निश्चित हूं:

  1. हर कोई, आप सिर्फ @jsmreese के प्लगइन का उपयोग कर सकते हैं। ये बहुत अच्छा दिखता है! प्लगइन्स अच्छी चीजें हैं! ( @jsmreese , यदि आप बहुत इच्छुक हैं, तो आप इसे एक पीआर के साथ प्रलेखन में मोमेंट प्लगइन्स की सूची में जोड़ सकते हैं: https://github.com/moment/momentjs.com)
  2. यह तब तक शामिल नहीं होने वाला है जब तक कि कोई व्यक्ति इसका a) अंतर्राष्ट्रीयकरण नहीं कर देता है, b) क्षणों के परीक्षणों में परीक्षणों को एकीकृत करता है, और c) PR को प्रस्तुत करता है। यह निश्चित रूप से तब तक नहीं होगा जब तक कोई ऐसा नहीं करता

+1 अवधि। सुधार

+1 अवधि। सुधार!

+1 अवधि। सुधार

+1 अवधि। सुधार। हमारा मामला यह है कि हम एक ऐसा कार्य प्रदान करना चाहते हैं, जहां कोई व्यक्ति कुछ सेकंड और एक स्ट्रिंग को पारित कर सकता है जो उन्हें प्रारूपित करेगा। अभी हम इसे moment.startof ("w") के साथ कर रहे हैं। जोड़ें ("s", nrOfececonds) ।format (customFormatString);

दुर्भाग्य से अभी पिछले सप्ताह ही इसने स्टार्टऑफ ("w") के बाद से रविवार को एक त्रुटि उत्पन्न की और रविवार को दिन के समय की बचत का समय था, इसलिए हम वहां एक घंटे से गायब थे। बेशक हम यह जाँच कर सकते हैं कि isDSTShifted () के साथ लेकिन यह अभी भी इसे प्रारूपित करने के लिए एक अवधि को एक तारीख में परिवर्तित नहीं करना होगा।

+1 अवधि। सुधार

+1 अवधि। सुधार

+1 duration.format

अवधि के लिए +1.फॉर्मेट

क्या हम इसे स्पष्ट रूप से किसी को भी बंद नहीं कर सकते हैं + 1ing वास्तव में इस धागे को पढ़ता है?

बुध पर, जून 10, 2015, 08:30 SamFromDaUk सूचनाएं @github.com ने लिखा:

अवधि के लिए +1.फॉर्मेट

-
इस ईमेल का उत्तर सीधे दें या इसे GitHub पर देखें
https://github.com/moment/moment/issues/463#issuecomment -110751635

या, इसे ठीक करें?

जॉर्ज, मुझे लगता है कि जो लोग +1 जोड़ रहे हैं वे स्पष्ट रूप से असहमत हैं, और
बस ये सुविधाएँ चाहिए।

यदि सूचनाएँ आपको परेशान कर रही हैं, तो इस से सदस्यता समाप्त करने पर विचार करें
थ्रेड।
11 जून 2015 00:07 को, "जॉर्ज कैटसनोस" नोटिफिकेशन @github.com ने लिखा:

या, इसे ठीक करें?

-
इस ईमेल का उत्तर सीधे दें या इसे GitHub पर देखें
https://github.com/moment/moment/issues/463#issuecomment -110767322।

संपूर्ण कारण गितुब में एक वोट सुविधा नहीं है (मेरी समझ से) क्योंकि यह चर्चा को हतोत्साहित करता है।

आप अपनी इच्छा से असहमत हो सकते हैं, यह मददगार नहीं है। यदि आप इस बात से असहमत हैं, तो थ्रेड के माध्यम से पढ़ें और अपनी दलीलें दें (विशेषकर, कोई भी नई दलीलें या आपके द्वारा सोचा गया कोई भी बिंदु खराब माना गया है)।

मैं अभी भी सब्सक्राइब किया हुआ हूं क्योंकि मुझे लगता है कि _do_ लगता है कि कुछ दिलचस्प तर्क दिए जाने बाकी हैं, मैं उन्हें सुनने के लिए उत्सुक हूं, लेकिन टीम को केवल दबाव में झुकना नहीं चाहिए।

मैं उपरोक्त कार्यों के लिए प्लगइन @icambron की पुष्टि कर सकता हूं।

यदि आप मेरी तरह हैं, तो आप व्यापक उत्पादन (जैसे अमेज़न की शिपिंग उलटी गिनती) के साथ .fromNow() चाहते हैं। यहाँ है कि कैसे करना है:

// include the plugin
var cutoffDate = moment().add(3, 'hours'); // some date in the future that we're counting down to
var now = moment();
var output = moment.duration(cutoffDate.diff(now)).format('h [hours] m [minutes] s [seconds]');
// "3 hours 0 minutes 0 seconds"

हां, मैं इसे भी स्पष्ट कर दूंगा - moment.duration ()। format () इस प्लगइन के साथ काम करता है: https://github.com/jsmreese/moment-duration-format

यदि आप उल्का का उपयोग कर रहे हैं, तो oaf:moment-duration-format

यह मेरे लिए काम नहीं कर रहा है, मैं पल का उपयोग कर रहा हूँ। दो समय के बीच .iff, जो काम करता है, समस्या यह है कि यह "दोपहर" और "हूँ" के बीच है, कहते हैं कि मैं 9pm पर यात्रा कर रहा हूँ और लैंडिंग 2am, मुझे समय की सही मात्रा मिलनी चाहिए।

@ Markj89 आपको

+1

+1

+1

: +1:

इस समस्या को बंद करने पर +1। प्लगइन का उपयोग करना एक ठोस समाधान है।

+1

+1

+1 .format()

+1, अभी भी 4 साल बाद लागू नहीं किया गया है? : डी

+1

Btw। मुझे लगता है कि मानवकृत प्रारूप को भी पार्स करना संभव होना चाहिए। जैसे कि 7 days and 5 hours पार्स करना उतना मुश्किल नहीं है ...

बस @jsmreese के प्लगइन पर जोर देना चाहता था काम महान!

: +1:

+1 अवधि। सुधार

+1 अवधि प्रारूप

+1 अवधि। सुधार

+1 अवधि। सुधार

: +1:

मैं इसे # 1048 के पक्ष में बंद करने जा रहा हूं। इसका मतलब यह नहीं है कि हम चले गए हैं, हमारे पास सिर्फ दो मुद्दे हैं जो कई साल पुराने हैं और दोनों 'अवधि स्वरूपण' करने के लिए उबलते हैं। अन्य व्यक्ति इसे और अधिक स्पष्ट रूप से समझाता है।

+1 अवधि। सुधार

+1 अवधि। सुधार

+1

.LocaleData () का उपयोग करें। संबंधित समय (45, सच, 'मिमी') और 45 मिनट, और इसी तरह प्राप्त करें;)

+1 वास्तव में इस बारे में बहुत बात करते हैं और अभी तक इसे लागू नहीं किया गया है। इस https://github.com/jsmreese/moment-duration-format के लिए अलग पैकेज है

किसी भी प्रारूप में अवधि प्रदर्शित करने के लिए, बस अवधि को एमएस और फिर क्षण में परिवर्तित करें:
moment(duration.as('milliseconds')).format('HH:mm:ss')

धन्यवाद! क्या यह डॉक्स में है? मैंने इसे नहीं देखा ...

यह डॉक्स में नहीं है क्योंकि यह काम नहीं करता है। यह यूनिक युग का उपयोग करके एक हैक है जो युग के बाद के समय में एक बिंदु के रूप में मिलीसेकंड की व्याख्या करने के लिए है। इस प्रकार, यह अलग हो जाता है यदि आपकी अवधि 24 घंटे या उससे अधिक हो।

इस कोड के बारे में कुछ बातें:

  1. Hh token एक टोकन है जिसका उपयोग AM / PM के साथ किया जाता है, इसलिए आपकी अवधि केवल 12 तक जाएगी

  2. यहां तक ​​कि अगर आप एक एचएच टोकन का उपयोग करते हैं, जो 23 तक जाएगा, तो आपकी अवधि 23: 59: 59.999 से अधिक नहीं हो सकती है, क्योंकि चीजें अगली तिथि में पार हो जाएंगी

  3. जैसा कि यह कोड लिखा गया है, यह केवल एक सर्वर पर काम करेगा जो यूटीसी में है। एक अलग समयक्षेत्र में कोई भी ब्राउज़र अप्रत्याशित परिणाम देगा।

यदि आप इस हैक का उपयोग करना चाहते हैं तो इसे इस प्रकार लिखा जाना चाहिए:

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

लेकिन जैसा कि मैंने बताया, यह केवल तभी काम करेगा जब आपकी अवधि 24 घंटे से कम हो। उस पर, चौकोर 1 पर वापस।

धन्यवाद। आज मुझे यह पता लगाने में थोड़ा समय लगा कि कोई .minutes() साथ .seconds() । मुझे बेवकूफ कहें, लेकिन यह डॉक्स से मेरे लिए स्पष्ट नहीं था कि .seconds() और .asSeconds() बीच का अंतर क्या है ... लेकिन अब मुझे लगता है कि यह वास्तव में है! :)

उदाहरण के लिए: console.log(duration.minutes()+":"+duration.seconds());

मैं इस विधि के साथ रहना होगा।

@elasticsteve यदि आप दस से कम हैं, तो आप शायद सेकंड के हिस्से में एक अग्रणी शून्य जोड़ना चाहते हैं। :आँख मारना:

@butterflyhug @elasticsteve वास्तव में मुख्य कारण मैं उपयोग करना चाहता था कि format । मेरे मामले में यह एक सरल कम समय काउंटर है इसलिए मेरी जरूरतों के लिए @maggiepint समाधान पर्याप्त है।
moment.utc(duration.asMilliseconds()).format('HH:mm:ss')

@sagivo अच्छा बिंदु! अब @maggiepint समाधान अधिक आकर्षक लग रहा है। मेरा सर्वर वैसे भी UTC है।

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

+1

+1 अवधि.फॉर्म () !!!!!!!!!

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

अवधि को डीबग करने के लिए +1 कठिन है

+1

आप आसानी से कुछ कर सकते हैं जैसे:

    var duration = moment().add(5, 'days') -  moment().local();
    var s = Math.floor( (duration/1000) % 60 );
    var m = Math.floor( (duration/1000/60) % 60 );
    var h = Math.floor( (duration/(1000*60*60)) % 24 );
    var d = Math.floor( duration/(1000*60*60*24) );
    return d + ' days ' + h + ' hours ' + m + ' minutes ' + s  + ' seconds before the deadline.';   
    // 4 days 23 hours 59 minutes 59 seconds before the deadline.

एक उपयोगकर्ता ट्विटर @Toon_Ladyboy का अनुरोध करें

आप आसानी से कुछ कर सकते हैं जैसे:

    var duration = moment().add(5, 'days') -  moment().local();
    var s = Math.floor( (duration/1000) % 60 );
    var m = Math.floor( (duration/1000/60) % 60 );
    var h = Math.floor( (duration/(1000*60*60)) % 24 );
    var d = Math.floor( duration/(1000*60*60*24) );
    return d + ' days ' + h + ' hours ' + m + ' minutes ' + s  + ' seconds before the deadline.';   
    // 4 days 23 hours 59 minutes 59 seconds before the deadline.

Uggly, लेकिन प्रभावी।

2019, अभी भी इस सुविधा की जरूरत है।

मानवीकरण में एक साधारण पैरामीटर,। humanize(precise: true) , जो सभी गोलाई को दरकिनार करेगा, जो सभी को खुश करने के लिए पर्याप्त होगा। इसके अलावा, गोलाई लागू करने के लिए कठिन हिस्सा है। बाकी केवल एक अवधि को परिवर्तित करना है जैसे प्रारूप () के साथ किया गया कोई अन्य स्वरूपण।

एक महान moment पद्धति है, जिसे fromNow() कहा जाता है, जो इस तरह से अच्छे मानव पठनीय रूप में विशिष्ट समय से समय लौटाएगा:

moment('2019-04-30T07:30:53.000Z').fromNow() // an hour ago || a day ago || 10 days ago

या यदि आप चाहते हैं कि दो विशिष्ट तिथियों के बीच आप उपयोग कर सकें:

var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b); // "a day ago"

डॉक्स से लिया गया:

क्या इसे फिर से खोला जा सकता है? यह बहुत बुनियादी कार्यक्षमता है।

मेरे मामले में मुझे एक पैकेज मिला जिसने मेरी समस्याओं को हल किया:
https://github.com/EvanHahn/HumanizeDuration.js

हो सकता है कि यह किसी और के लिए भी उपयोगी हो। :)

जुलाई 2019 और यह सुविधा अभी भी उपलब्ध नहीं है।

जुलाई 2019 और यह सुविधा अभी भी उपलब्ध नहीं है।

अभी तक यह कोशिश नहीं की है, लेकिन मैं सिर्फ यह देखा!
npm install moment-duration-format

https://github.com/jsmreese/moment-duration-format

सितंबर 2019 अभी भी आधिकारिक रूप से इस सुविधा को याद करता है

d.format('H:mm:ss');
"1:01:01"

साथ ही कामना करते हैं कि इसका यह फीचर हो सकता है

d.format('D-H:mm:ss'); // existence of D will mod hours to 24
"999-23:59:59"

यदि कोई यह सोच रहा था कि यह बंद क्यों है: https://github.com/moment/moment/issues/463#issuecomment -228543000

यह किसी भी तरह से आदर्श नहीं है, लेकिन मैंने वर्कअराउंड के रूप में कुछ ऐसा किया। मेरे पास निष्क्रियता के बाद उपयोगकर्ता को लॉग आउट करने के लिए एक उलटी गिनती के साथ duration वस्तु थी, और शेष समय को प्रारूपित करना चाहता था।

// What I did:
private getTimeString(duration: moment.Duration): string {
    const time = moment()
      .seconds(duration.seconds())
      .minutes(duration.minutes());

    return time.format('mm:ss');
}

// What I'd rather do (as many others have mentioned)...
private getTimeString(duration: moment.Duration): string {
    return duration.format('mm:ss');
}

मेरा एक घिनौना समाधान:

import moment from 'moment';

const formatInt = (int: number): string => {
  if (int < 10) {
    return `0${int}`;
  }
  return `${int}`;
};

export const formatDuration = (time: string): string => {
  const seconds = moment.duration(time).seconds();
  const minutes = moment.duration(time).minutes();
  const hours = moment.duration(time).hours();
  if (hours > 0) {
    return `${formatInt(hours)}:${formatInt(minutes)}:${formatInt(seconds)}`;
  }
  if (minutes > 0) {
    return `${formatInt(minutes)}:${formatInt(seconds)}`;
  }
  return `00:${formatInt(seconds)}`;
};

2020

मैं निम्नलिखित विधि का उपयोग करता हूं, यह किसी और के लिए उपयोगी हो सकता है :)

function formatDuration(duration, format) {
  const date = moment().startOf('day');
  return date.add(duration).format(format);
}

(मैं केवल 00:00 और 23:59 के बीच अवधि के प्रारूपण के लिए उपयोग करता हूं)

अभी भी इसकी जरूरत है

इन 'गेट' से यू टू वांट को फॉर्मेट करने में मदद मिलती है:

  duration.get('years')
  duration.get('months')
  duration.get('days')
  duration.get('hours')
  duration.get('minutes')
  duration.get('seconds')

मैं किसके साथ काम करता हूं:

const formatDuration = ms => {
  const days = Math.floor(ms / 8.64e7);
  const msOnLastDay = ms - days * 8.64e7;
  return (days < 10 ? "0" + days : days) + ":" + moment.utc(msOnLastDay).format("HH:mm:ss.SSS");
};
formatDuration(5)
"00:00:00:00.005"
formatDuration(500)
"00:00:00:00.500"
formatDuration(50000)
"00:00:00:50.000"
formatDuration(5000000)
"00:01:23:20.000"
formatDuration(500000000)
"05:18:53:20.000"
// for reference
JSON.stringify(moment.duration(500000000)._data, null, 2)
"{
  "milliseconds": 0,
  "seconds": 20,
  "minutes": 53,
  "hours": 18,
  "days": 5,
  "months": 0,
  "years": 0
}"

जुलाई 2019 और यह सुविधा अभी भी उपलब्ध नहीं है।

अभी तक यह कोशिश नहीं की है, लेकिन मैं सिर्फ यह देखा!
npm install moment-duration-format

https://github.com/jsmreese/moment-duration-format

यह पूरी तरह से ठीक काम करता है :)

खेल खत्म हुआ :)

धन्यवाद, सराहना है कि !!!


डे: अलेक्सेसी माकस नोटिफिकेशन @github.com
एनिवाडो: सेक्स्टा-फिरा, 9 डे आउटुब्रो डे 2020 11:03
पारा: पल / पल पल @noreply.github.com
Cc: डगलस अगुइर [email protected] ; कमेंट करें @noreply.github.com
Assunto: पुन: [पल / पल] अवधि लापता विशेषताएं (# 463)

खेल खत्म हुआ :)

-
आप इसे प्राप्त कर रहे हैं क्योंकि आपने टिप्पणी की है।
इस ईमेल का उत्तर सीधे दें, इसे GitHub https://github.com/moment/moment/issues/463#issuecomment-706200427 पर करें https://github.com/notifications/unsubscribe-auth/AGD22DRNGNIQMOJFQQW7W3W3W3J3/3sJ3b3sJ3 पर देखें

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