আমি কীভাবে একটি মুহুর্তের সময়কালে () বিন্যাসটি ব্যবহার করব?


211

সময়কাল অবজেক্টগুলিতে আমি moment.js format পদ্ধতিটি ব্যবহার করতে পারি এমন কোনও উপায় আছে কি ? আমি ডক্সে এটি কোথাও খুঁজে পাচ্ছি না এবং এটি সময়কাল অবজেক্টগুলিতে কোনও বৈশিষ্ট্য হিসাবে দেখা যায় না।

আমি কিছু করতে সক্ষম হতে চাই:

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

এছাড়াও, যদি অন্য কোনও লাইব্রেরি থাকে যা এই ধরণের কার্যকারিতা সহজেই সংযোজন করতে পারে তবে আমি পুনরুদ্ধারগুলিতে আগ্রহী।

ধন্যবাদ!


5
moment.utc (duration.asMilliseconds ()) ফর্ম্যাটে ( 'HH: MM: এস এস');। - একটি সময়কাল একটি ভেক্টর হয়। এর লেজটি উত্সের উপরে রেখে আপনি hh: মিমি: এসএস পেতে তারিখ বিন্যাস ব্যবহার করতে পারেন।
পল উইলিয়ামস

moment.utc (moment.duration (23, 'সেকেন্ড')। as মিলিসেকেন্ডস ()) ফর্ম্যাট ('এইচ: মিমি: এসএস') => "12:00:23" তেমন ভাল কাজ করে না
সোনাররেটিও

আহ, আমি সমস্যাটি খুঁজে পেয়েছি, আমার আগের উদাহরণটি দিয়ে HH:mm:ssদেব 00:00:23। তাই কেবল আওয়ার্স অংশে ভুল কেসিং
সোনাররেটিও

উত্তর:


55

আমরা moment.js এ সময়সীকরণগুলিতে এক ধরণের বিন্যাসকে যুক্ত করার সন্ধান করছি। Https://github.com/timrwood/moment/issues/463 দেখুন

এক দম্পতি অন্যান্য লাইব্রেরি যে সাহায্য হতে পারে http://countdownjs.org/ এবং https://github.com/icambron/twix.js


4
আমি সময়কাল বিন্যাসের অপেক্ষায় রয়েছি। এখন দেখে নিন কাউন্টডাউনজ, তবে টিক্স কেবল "স্মার্ট" ফর্ম্যাট করতে পারে বলে মনে হচ্ছে, খুব বেশি কাস্টমাইজেশন নেই।
এমপেন

2
টিক্স স্মার্ট ফর্ম্যাটিং করতে কঠোর পরিশ্রম করলেও এর সাথে প্রচুর বিন্যাসের বিকল্প রয়েছে, সরাসরি নিচে জড়িত টোকেনগুলি: github.com/icambron/twix.js/wiki/ Formatting । দাবি অস্বীকার: আমি দ্বিগুণ লেখক।

3
কাউন্টডাউন.জেএস দুর্দান্ত, এবং লেখক সুপার-সহায়ক ( আমার দেওয়া কিছু পরামর্শের কারণে তিনি একই দিনে 2 টি সংস্করণ প্রকাশ করেছেন)!
ওহাদ স্নাইডার

5
আমি নিচে ভোট দিচ্ছি কারণ এই উত্তরের সাথে যুক্ত গিথুব ইস্যুটি কেবল কখনও শেষ প্রবাহের মতামত, শুভেচ্ছা এবং অভিভাবকতা যা কোনও
দিকেই

29
এটি লাইব্রেরির অন্য কোথাও ব্যবহৃত অন্য। ফর্ম্যাটগুলির সাথে কেন অভিন্ন হতে পারে না? এটি উন্মাদনা। 5 বছর এবং এখনও এটি করা হয়নি? সত্যিই ?!
ক্রিস্টোপলাস

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);

জেএসফিডালটি দেখুন


3
ভাল পদ্ধতির। যদিও আমি দিনগুলি প্রদর্শন করতে চাইলে এটি কাজ করে না: DDD HH:mm:ss.SSS( DDDবছরের দিনটি কোথায় ) 1আমি চাইলে প্রদর্শিত হয় 0। এর জন্য কোন দ্রুত সমাধান?
অ্যান্ড্রু মাও

1
কোন সহজ উপায়। আমি এই jsfiddle.net/fhdd8/14 করেছি , যা সম্ভবত আপনি যা করেছেন সম্ভবত, তবে আমি মনে করি না মুহুর্তের এমন কিছু আছে যা বাক্সের বাইরে এটি করে
ডেভিড গ্লাস

49
এটা কোন অর্থে যেমন মিমি 10 কোয়াড্রিলিয়ন মিলিসেকেন্ড প্রদর্শন করে দেখা যায় না: SS
জেটি-লুক Gendreau

28
এটি 24 ঘন্টা অতীতে কাজ করে না (অর্থাত্ যদি আমি 117 ঘন্টা প্রদর্শন করতে চাই)। অন্যথায় দুর্দান্ত সমাধান!
ফিল

1
@ ফিল্ম আপনি দিনগুলি দেখাতে চাইলে আপনি "ডি" বা "ডিডি" ব্যবহার করতে পারেন।
বিনয়

71

সময়কালকে এমএসে এবং তারপরে মুহূর্তে রূপান্তর করুন:

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

14
সুতরাং আপনার সময়কাল ২৪ ঘন্টার চেয়ে বেশি হলে এটি কাজ করে না .. ২৪ ঘন্টা 0 ঘন্টা পুনরায় সেট করা হচ্ছে
এস রবিজনস

4
@ এস। রবিজন একটি দরকারী পর্যবেক্ষণ করেছেন তবে অন্যের জন্য জোর দেওয়ার জন্য - এটি এর প্রত্যাশিত আচরণ .format('HH:mm:ss')দস্তাবেজগুলি দেখুন
dvnicwil

1
এটি সেরা উত্তর!
ম্যাজিকো

44

এই প্লাগইন মুহুর্ত সময়কাল বিন্যাস ব্যবহার করুন

উদাহরণ:

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

1
এই ফর্ম্যাটিংটি সঠিকভাবে কাজ করে না, সময়কাল পার্শ্বে ভাল হয় তবে আমি যদি উল্লেখ করেছি hh:mm:mmএবং যদি কেবল 10 সেকেন্ডের 10পরিবর্তে এটি প্রদর্শিত হয় 00:00:10(এমনকি বলের দৈর্ঘ্যের সাথেও) এটির বিন্যাস যদি না হয় ... তবে এটিকে অন্য কিছু বলা উচিত, বিন্যাসগুলি হওয়া উচিত আদর্শায়িত।
পাইটর কুলা

9
@ পিপমকিন আমি জানি এটি পুরানো তবে আপনি যদি { trim: false }এটি নির্দিষ্ট করেন তবে এই আচরণটি বন্ধ হবে।
কার্লোস মার্টিনেজ

3
এটিই আমি ব্যবহার করতে পছন্দ করি: ধরে নিন আপনার সময়কাল রয়েছে, যেমন const duration = moment.duration(value, 'seconds');আমার ব্যবহার করে ফর্ম্যাট করা যায়: moment.utc(duration.as('milliseconds')).format('HH:mm:ss').toString();
ইভজেনি ববকিন

1
@ ইভজিনিবোজকিন যা আপনার সময়কাল এক দিনের চেয়ে বেশি সময় ধরে কাজ করবে না, যদিও গ্রন্থাগারটি এটি পরিচালনা করবে
রেগেইগুইটার

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

ব্যাখ্যার দরকার নেই। এই সমাধানটি কীভাবে অর্জন করা হয়েছিল তা মোমেন্ট.জেএস ডকটি প্রদর্শন করতে পারে।
coffekid

2
বেহুদা। এই প্রশ্নের অন্যান্য উত্তরগুলির মতো মোট সময়কালে সময়কালে আংশিক ঘন্টা ফেরত দেয়। উদাহরণস্বরূপ মুহুর্তের জন্য 12:00 ফেরত দেয় du শিক্ষার ({দিন: 2, ঘন্টা: 12})
নিউট্রিনো

1
moment.duration (ভিন্ন) .মিলিসেকেন্ডস () অত্যধিক। আপনি কেবল ডিফ ব্যবহার করতে পারেন, এটি ইতিমধ্যে মিলিসেকেন্ডে।
ক্রিস্টোপলাস

12

আমার নির্দিষ্ট ব্যবহারের ক্ষেত্রে সবচেয়ে ভাল দৃশ্যটি ছিল:

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

এটি @ উইলসনের উত্তরের উপর উন্নতি করে যেহেতু এটি ব্যক্তিগত অভ্যন্তরীণ সম্পত্তি _ডাটা অ্যাক্সেস করে না।


ধন্যবাদ @ টায়েকোয়ানজো
কমলেশ

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
সময়সীমা (
সেকেন্ডস

এক ঘন্টার বেশি সেকেন্ড থাকলে কী হবে? আপনি কি 60 সেকেন্ডের বেশি সময় নিচ্ছেন এটি কি ঠিক আছে?
শেদ্রিচ

শীর্ষস্থানীয় শূন্যগুলি কাজ করে তবে duration = moment.duration(7200, 'seconds'); withPadding(duration);"00:00" বলবে।
শেদ্রিচ

@ শ্যাডরিচ আমি আমার উত্তরটি আপডেট করেছি ঘন্টা অন্তর্ভুক্ত করার জন্য; আপনার যদি দিনের, সপ্তাহ, পাশাপাশি প্রয়োজন হয় তবে আপনি এগুলি অ্যারেতে যোগ করতে পারেন
নি-কো-ও-কিন

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" পেয়েছি।


গ্রেট! এটি ঠিক কাজ করে ... পৃথিবীতে আপনি কীভাবে
এটিকে সামনে এনেছিলেন

4
এই সমাধানটি এড়ান, _dataএটি একটি অভ্যন্তরীণ সম্পত্তি এবং সতর্কতা ছাড়াই পরিবর্তন হতে পারে।
দ্রুস্কা

1
দুর্ভাগ্যক্রমে এটি সর্বদা প্রত্যাশিতভাবে কাজ করবে না: moment(moment.duration(1200000)._data).format('hh:mm:ss')00:20 এর পরিবর্তে 12:20 ফিরে আসবে
আন্না আর

2
@ আন্নাআর h1-12 সীমার মধ্যে রয়েছে, সুতরাং এটি বরং প্রত্যাশাযোগ্য। Hপরিবর্তে ডক্স
বারবসান

এটি ভুল, আপনি কেবলমাত্র DAYS এড়িয়ে যান তা নয়, তাই 1 দিন এবং 1 ঘন্টা আপনাকে 01:00 হিসাবে প্রদর্শিত হবে। উপরন্তু আপনি সম্পূর্ণরূপে সময় মন্ডল, একটি ভাল সমাধান উপেক্ষা করা হয়, কিন্তু এছাড়াও একটি সম্পূর্ণ হলে এক হতে হবে moment.utc(...).format("HH:mm");
গিল Epshtain

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')

এটি একটি হ্যাক কারণ সময় পার্থক্যটিকে একটি আদর্শ মুহুর্তের তারিখ হিসাবে বিবেচনা করা হয়, একটি প্রথম যুগের প্রথম তারিখ, তবে এটি আমাদের লক্ষ্যের সাথে কিছু যায় আসে না এবং আপনার কোনও প্লাগইন প্রয়োজন হয় না This


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

আমি মনে করি না এটি খুব পাঠযোগ্য। আপনি এখানে কোন সমস্যার সমাধান করতে চান? আপনার ইউসকেস কি?
নি-কো-ও-কিন

আমি একদিনের বেশি সময় নিয়ে আমার উত্তরটি আপডেট করেছি। এটি আমার ব্যবহারের ক্ষেত্রে ভাল কাজ করে।
নি-কো-ও-কিন

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

আমার সমাধান যা অন্য কোনও গ্রন্থাগারকে জড়িত করে না এবং এটি 24> 24 ঘন্টা ধরে কাজ করে

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');

সার্ভার (নোড.জেএস)

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 মিনিট এস


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

আপনি আপনার সময়কাল ফর্ম্যাট করতে numeral.js ব্যবহার করতে পারেন :

numeral(your_duration.asSeconds()).format('00:00:00') // result: hh:mm:ss

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.js সময়কাল সঠিকভাবে কীভাবে ব্যবহার করবেন? | কোডটিতে moment.duration () ব্যবহার করুন

প্রথমে আপনাকে আমদানি করতে হবে momentএবং moment-duration-format

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

তারপরে, সময়কালীন ফাংশনটি ব্যবহার করুন। আসুন উপরের উদাহরণটি প্রয়োগ করুন: 28800 = সকাল 8 টা।

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

- ওয়েল, আপনার উপরের ধরণের ত্রুটি নেই। Amআপনি 8:00 টায় একটি সঠিক মান পাবেন? না…, আপনি যে মান পাবেন তা 8:00 এ। মোমেন্ট.জেএস ফর্ম্যাটটি যেমন অনুমিত হয় তেমন কাজ করে না।

- সমাধানটি হ'ল সেকেন্ডকে মিলি সেকেন্ডে রূপান্তর করা এবং ইউটিসি সময় ব্যবহার করা।

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")

তবে ২৪ ঘন্টা এবং ঘন্টাগুলি 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

আপনি যদি কৌনিক> 2 ব্যবহার করেন তবে আমি @ হাই-আলালুফ উত্তর দ্বারা অনুপ্রাণিত একটি পাইপ তৈরি করেছি।

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 : "");
  }
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.