Hv: mm: ss বিন্যাসের সাথে টাইম স্ট্রিংয়ে জাভাস্ক্রিপ্ট সেকেন্ডে


300

আমি সময়ের একটি সময়কালে অর্থাত্ সেকেন্ডের সংখ্যাকে কোলন-বিচ্ছিন্ন সময় স্ট্রিংয়ে রূপান্তর করতে চাই (hh: মিমি: এসএস)

আমি এখানে কিছু দরকারী উত্তর পেয়েছি তবে তারা সকলেই x ঘন্টা এবং x মিনিটের ফর্ম্যাটে রূপান্তর করার বিষয়ে কথা বলে।

সুতরাং একটি ছোট স্নিপেট আছে যা jQuery বা কেবল কাঁচা জাভাস্ক্রিপ্টে এটি করে?


11
এই থ্রেডে প্রস্তাবিত কয়েকটি উত্তরের মাপদণ্ড। jsperf.com/ms-to-hh-mm-ss-time-format
ক্লদিজো

উত্তর:


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

কাজের স্নিপেট:


1
প্রোটোটাইপ ধারণার জন্য ধন্যবাদ, এটি পছন্দ করা কীভাবে সহজ তা আমি পছন্দ করি। আমি নম্বরটি প্রোটোটাইপ করেছি যাতে আমি এটিতেও তাদের কল করতে পারি। আমি এই উত্তরটিও পেয়েছি যা তাদের প্রয়োজন না হলে ঘন্টা এবং মিনিট সরিয়ে ফেলবে।
alunsford3

21
"%" অপারেটর ব্যবহার করুন >> var মিনিটস = ম্যাথ.ফ্লোর ((সেকেন্ড_নুম% 3600) / 60); var সেকেন্ড = ম্যাথ.ফ্লোর (সেকেন্ড_নুম% 60);
ইভানএম 12 '50

3
আহ ধন্যবাদ আপনি পূর্ণসংখ্যায় .toString () না কল করা পর্যন্ত আমি এটি স্ট্রিং হিসাবে উভয়ভাবে কাজ করতে দেখছি না। আপনি খুব সহজেই পার্স করে এটিকে অন্য উপায়ে কাজ করতে পারেন
সোনিক সোল

51
প্রোটোটাইপটি রাখবেন না, কেবল একটি ইউটিলিটি ফাংশন করুন।
মাইকেল জে। ক্যালকিনস

15
এ জাতীয় জিনিসের জন্য প্রোটোটাইপ পরিবর্তন করবেন? 390 upvotes? গম্ভীরভাবে?
লুকাশ লিসিস

196

আপনি নীচের মত জেএস তারিখ পদ্ধতির সাহায্যে কোনও বাহ্যিক জেএস লাইব্রেরি ছাড়াই এটি পরিচালনা করতে পারেন:

var date = new Date(0);
date.setSeconds(45); // specify value for SECONDS here
var timeString = date.toISOString().substr(11, 8);
console.log(timeString)


4
এই উত্তরটি এত কম কেন? আমি এটি 2011 সালে পেয়েছি সম্ভবত আই 7 এবং 8 বেস ছিল যা এটি সমর্থন করবে না, তবে এটি 2014 এর শেষ, সুতরাং এই সাধারণ সরল, ফ্যাস ফ্রি সমাধানটি আরও বেশি হওয়া উচিত।
এমিল বোরকোনি

2
এমডিএন থেকে: আপনার নির্দিষ্ট করা প্যারামিটার যদি প্রত্যাশিত ব্যাপ্তির বাইরে থাকে তবে সেটসেকেন্ডস () অনুসারে তারিখের অবজেক্টে তারিখের তথ্য আপডেট করার চেষ্টা করে। উদাহরণস্বরূপ, আপনি যদি 100 সেকেন্ডের জন্য মূল্য ব্যবহার করেন তবে তারিখের অবজেক্টে সঞ্চিত মিনিটগুলি 1 দ্বারা বৃদ্ধি পাবে এবং 40 সেকেন্ডের জন্য ব্যবহৃত হবে। হ্যাঁ, ভাল দেখাচ্ছে!
অ্যান্ড্রু

40
আমি এই উত্তর পছন্দ। এটি এমনকি খাটো হতে পারে: new Date(1000 * seconds).toISOString().substr(11, 8)
বোহুমির জামেকানিক

4
চমৎকার উত্তর. আপনি ব্যবহার করতে পারেন .replace(/^[0:]+/, "")পরে substrসব শূণ্যসমূহ মুছে ফেলার জন্য এবং :স্ট্রিং এর শুরু থেকে।
পালো

1
24 ঘন্টা সময় হ্যান্ডেল করতে এটি সামনে যোগ করুন। parseInt (d / 86400) + "d"
Tofandel

82

বিন্যাসে সময় অংশ পেতে hh:MM:ss, আপনি এই নিয়মিত প্রকাশটি ব্যবহার করতে পারেন:

(এটি উপরে একই পোস্টে কারও দ্বারা উল্লিখিত ছিল, এর জন্য ধন্যবাদ।)

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


8
+1 - অতি-সরল; ধন্যবাদ! কেবলমাত্র কয়েক মিনিট এবং সেকেন্ড দেখানোর জন্য এর বৈকল্পিকটি ব্যবহার করেছেন:var myDate = new Date().toTimeString().replace(/.*(\d{2}:\d{2})(:\d{2}).*/, "$1");
টোফার ফ্যাঙ্গিও

1
এটি "নতুন তারিখ (নাল, নাল, নাল, নাল, নাল, টাইমইনসেকস) হওয়া উচিত নয় to })। * /, "$ 2") "?
ওবি

6
ব্যবহার replaceবিভ্রান্তিকর। কেন ব্যবহার new Date(null, null, null, null, null, timeInSeconds).toTimeString().match(/\d{2}:\d{2}:\d{2}/)[0]করবেন না ?
কলিন ডারি

4
একটি নির্দিষ্ট সময় দেখানোর জন্য এটি ঠিক আছে, তবে নোট করুন (এবং এখানে অন্যান্য উত্তরগুলি) একটি সময়কাল, অর্থাৎ বর্তমান সময়ের তুলনায় প্রদত্ত সংখ্যক সেকেন্ডের প্রদর্শন সম্পর্কে about
মাহেমফ

4
এর সহজ সংস্করণ:new Date().toTimeString().split(" ")[0]
হেনরিক এন

52

তারিখ অবজেক্টটি ব্যবহার করে আমি সাধারণ জাভাস্ক্রিপ্টের প্রস্তাব দিই:

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

(অবশ্যই, তৈরি তারিখের অবজেক্টের সাথে একটি প্রকৃত তারিখ যুক্ত থাকবে তবে সেই ডেটা বহিরাগত, সুতরাং এই উদ্দেশ্যে, আপনাকে এটি নিয়ে চিন্তা করতে হবে না))


স্থানীয় সময় অঞ্চলে এটি তারিখটি মনে হচ্ছে যা আমার ক্ষেত্রে সময়টিতে 1 ঘন্টা যোগ করে। সেকেন্ড = 0 সহ, আমি "01:00:00" পেয়েছি (থু জানুয়ারী 01 1970 01:00:00 GMT + 0100 (সিইটি)), যা ভুল।
mivk

3
আমি একটি সঠিক ফলাফল পেতে হলে আমি ব্যবহার date.getUTCHours()এবং date.getUTCMinutes()
mivk

আমি বুঝতে পারি না কেন আপনি যখন সময়কাল চেয়েছিলেন তখন আপনি কেন 12 ঘন্টা টাইমস্ট্যাম্প ফিরিয়ে দিচ্ছেন?
নাথান সি। ট্রেশেচ

@ জেলিকেলকিট +1 এবং সুন্দর নামতে পরিবর্তিত হয়েছে।
নাথান সি। ট্রেশেচ

1
আমি এটি পছন্দ করি তবে এটি ধরে নেয় যে সময়কাল 24 ঘন্টাের চেয়ে কম
রোরি

40

একটি গুগল অনুসন্ধান এই ফলাফলটি তৈরি করেছে :

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

8
secondsToTime(119.9)=> Object {h: 0, m: 1, s: 60}। এটি ঠিক করতে, secs = Math.round(secs);পদ্ধতির শুরুতে যুক্ত করুন । অবশ্যই, আমরা এই বাগটি ডেমো চলাকালীন সময়ে দেখেছি ...
বেনজামিন ক্রাউজিয়ার

29

একটি থিমের বিভিন্নতা। একক অঙ্কের সেকেন্ডকে কিছুটা আলাদাভাবে পরিচালনা করে

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

আমাকে
এটির

29

এটি আমার গ্রহণ করা এখানে:

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

প্রত্যাশিত ফলাফল:

const expect = require('expect');
expect(formatTime(0)).toEqual('0:00');
expect(formatTime(1)).toEqual('0:01');
expect(formatTime(599)).toEqual('9:59');
expect(formatTime(600)).toEqual('10:00');
expect(formatTime(3600)).toEqual('1:00:00');
expect(formatTime(360009)).toEqual('100:00:09');
expect(formatTime(0.2)).toEqual('0:00');

আপনি এটি লিখতে পারেন: const formatTime = (seconds, h = Math.floor(seconds / 3600), m = Math.floor((seconds % 3600) / 60), s = seconds % 60) => [h, m > 9 ? m : '0' + m, s > 9 ? s : '0' + s].filter(s => s).join(':');
রুবেন স্টলক

2
@ রুবেনস্টক আমার কাছে দুটি ফর্মটি নিয়ে কিছু ফাংশন করতে কিছুটা বিভ্রান্তি লাগছে second। এটি আমার ভার্সনটি আরও স্পষ্টভাবে খুঁজে পাওয়া যায় যদিও এটি আরও কিছুটা ভারবস হয়।
টম এস্তেরেজ

seconds: numberএসোটে এনোটেশন লিখুন?
ওলিয়ান04

1
আইপি 9: ক্যানিউজ . com / #feat=mdn- জাভাস্ক্রিপ্ট_গ্রামার_ট্রেইলিং_কমাস থেকে @pstanton ট্রেলিং কমা সমর্থিত । আমি ব্যক্তিগতভাবে এখন সেই পুরানো ব্রাউজারগুলিকে উপেক্ষা করতে পছন্দ করি। তবে আপনি ঠিক বলেছেন, আমি এটিকে সরিয়ে দিয়েছি যাতে উত্তরটি আরও সাধারণ হয়।
টম এস্তেরেজ

1
দুর্দান্ত সমাধান। সম্ভবত সেকেন্ড পরিবর্তন হবেconst s = Math.round(seconds % 60);
রাফ

16

আমি প্রথম উত্তরটি পছন্দ করি। কিছু অপ্টিমাইজেশন আছে:

  • উত্স তথ্য একটি সংখ্যা। অতিরিক্ত গণনা প্রয়োজন হয় না।

  • অনেক অতিরিক্ত কম্পিউটিং

ফলাফলের কোড:

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

1
আমি মনে করি এই ফাংশনটি হ'ল ফ্রন্টযুক্ত এবং এর জন্য স্ট্রিং প্রোটোটাইপ করে নম্বরে ব্যবহৃত বৈশিষ্ট্য। এবং সংখ্যা সর্বদা একটি স্ট্রিং হতে পারে তবে অন্যভাবে হয় না।
Powtac

3
আমি মনে করি Numberঠিক কারণ কারণ seconds, আসলে একটি সংখ্যা। এই ফাংশনটি ব্যবহারের আগে আপনার স্ট্রিং থেকে রূপান্তর করা উচিত, যা সঠিক জিনিস!
সিজারসোল

2
upvated উত্তর, ঠিক এই মত, খারাপ। আমি বাজি ধরছি এই পদ্ধতিটি ব্যবহার করার জন্য আপনার সব সংখ্যার দরকার নেই। এলোমেলো ইউটিলিটি স্টাফের জন্য প্রোটোটাইপ পরিবর্তন করবেন না।
লুকাশ লিসিস

বা কেবল প্রোটোটাইপ করতে এবং এটি একটি ফাংশন করতে numToHHMMSS বা #TOHHMMSS
হ্যাডিক্সন

এই সমাধানটি কাজ করে যখন নির্বাচিত সমাধানটি নির্দিষ্ট মানগুলির জন্য 60 সেকেন্ডের উত্পন্ন করে।
অ্যান্ড্রয়েডদেভ

14

আশ্চর্যজনক moment.js লাইব্রেরি ব্যবহার করে :

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

এটি আপনাকে ঘন্টা, মিনিট, সেকেন্ড, মিলগুলি এবং কোনও মানব পাঠযোগ্য সংস্করণ প্রদান করে কোনও সময়কাল নির্দিষ্ট করতে দেয়।


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

এই উত্তর প্রশ্নকারীর পক্ষে কেন কাজ করবে বা মূল প্রশ্নে কী ভুল হতে পারে সে সম্পর্কে আরও ব্যাখ্যা এই উত্তরের গুণমান বাড়াতে সহায়তা করবে।
জোশ বুর্গেস

1
সুন্দর স্ব ব্যাখ্যামূলক এবং ভাল উত্তর, শীর্ষ উত্তর হ্রাস এবং সরলীকৃত।
অ্যালেক্সিওয়ে

যথাযথ উত্তর:)
isষভ কুমার

11

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

ফলাফল 15:08:03


সুন্দর ধন্যবাদ! এবং আমার প্রয়োজনের জন্য আমি একটি ছোট উন্নতি করেছি তা হ'ল: মিলি সেকেন্ডে একটি সময়কালকে এইচএইচ: এমএম: এসএস-তে রূপান্তর করা হয়েছিল new Date(new Date().getTime() - startTime).toUTCString().split(" ")[4]যেখানে startTimeআগে ব্যবহার করে সেট করা হয়েছিল startTime = new Date().getTime();। (আমাকে ব্যবহার করতে হয়েছিল toUTCString()কারণ অন্যথায় সময়গুলি এক ঘন্টা ছিল))
রিচার্ড উইজম্যান 11

10

এটা বেশ সহজ,

function toTimeString(seconds) {
  return (new Date(seconds * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
}

এটি কেবল তখনই কার্যকর হয় যদি আপনার সময়কাল 1 দিনের চেয়ে কম হয়। তবে অন্যথায়, বেশ সুন্দর।
সিজেবার্থ

8
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

6

আমি ওয়েবজিন্সকে সবচেয়ে বেশি উত্তর দিতে পছন্দ করেছি, তাই আমি বিজ্ঞাপনের প্রত্যয় সহ দিনগুলি প্রদর্শন করতে শর্তসাপেক্ষে তৈরি করেছি এবং সরল সেকেন্ডে প্রত্যয় হিসাবে অন্তর্ভুক্ত করেছি:

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

"3d 16:32:12" বা "16:32:12" বা "32:12" বা "12s" ফেরত দেয়


এটি 24 দিন বা তার বেশি সময়ের জন্য ভুল হবে
চার্লি মার্টিন

আপনি কেন 0 টির বেশি স্ট্রিং তুলনা করছেন?
জিমি কানে

@ জিমি কেনে কারণ স্বয়ংক্রিয় টাইপকাস্টিং - আমি এটি লভ! (প্লাস: কোডটি পড়া আরও সহজ (আপনি কোনও কারণে টাইপকাস্টিং পেয়েছেন, তবে আসুন ট্রলিং বন্ধ করুন (আমরা উভয়)) plus আরও এটি ইনপুট!)
nïkö

@ nïkö ঠিক আছে আমি বুঝতে পেরেছি তবে আরও জেএসএস ভার্সন, লিটারার ইত্যাদির বিষয়ে অভিযোগ করতে পারেন। শুধু বলছি, ডং আমাকে ভুল করুক। আমি আপনার উত্তরটি পছন্দ করি
জিমি কেন

6

আমি পাওয়ারটাকের উত্তরটি পছন্দ করেছিলাম তবে আমি এটি কৌনিক.জেজে ব্যবহার করতে চেয়েছিলাম, তাই আমি তার কোড ব্যবহার করে একটি ফিল্টার তৈরি করেছি।

.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;
    };
}])

এটি কার্যকরীভাবে অভিন্ন, আমি ভগ্নাংশের সেকেন্ড প্রদর্শন করার জন্য optionচ্ছিক দশমিক ক্ষেত্রগুলিতে যুক্ত করেছি। আপনি অন্য কোনও ফিল্টার হিসাবে এটি ব্যবহার করুন:

{{ elapsedTime | HHMMSS }} প্রদর্শন: 01:23:45

{{ elapsedTime | HHMMSS : 3 }} প্রদর্শন: 01:23:45.678


আমার দুটি ডেটটাইম অবজেক্ট রয়েছে এবং আমি এই 2 ডেটটাইম অবজেক্টের পার্থক্য গণনা করতে চাই এবং এই ফর্ম্যাটের মতো আউটপুট ফিরিয়ে আনতে চাই: ঘন্টা: মিনিটস: দ্বিগুণ সংখ্যার মতো সেকেন্ড: 01: 02: 45. আপনি দয়া করে আমাকে বলতে পারেন বা আমাকে সামান্য গাইড করতে পারেন আপনার কোড সহ ??
লার্নিং-ওভারথিংকার-বিভ্রান্ত

4

আমি মনে করি পারফরম্যান্স অনুযায়ী এটি এখন পর্যন্ত সবচেয়ে দ্রুততম:

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

সত্যিই অসাধারণ. অভিনন্দন!
ব্রায়নার ফেরেরিরা

চমৎকার ... এবং> 24 ঘন্টা নিরাপদ।
জেফজ

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

Math.floor()দশমিক দশকে দেওয়া হতে পারে তাই আমি কয়েক সেকেন্ডও রেখেছিলাম । (আমার সাথে ঘটেছিল))
শীতকাল

3

এখানে আরও একটি সংস্করণ রয়েছে, যা দিনগুলিও পরিচালনা করে:

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

3

toString()ডেট অবজেক্টের পদ্ধতি থেকে ফিরে আসা স্ট্রিংয়ের সাথে টাইমের স্ট্রিংয়ের সাথে মেলে একটি নিয়মিত অভিব্যক্তি ব্যবহার করা যেতে পারে যা নিম্নরূপে ফর্ম্যাট করা হয়েছে: "থু জুলাই ২০১২ ০২:৪:45:২২ GMT + 0100 (GMT দিবালোক সময়)"। নোট করুন যে এই সমাধানটি সূচনাকাল থেকে সময়টি ব্যবহার করেছে: 1 জানুয়ারী, 1970 এর মধ্যরাত This এই দ্রবণটি ওয়ান-লাইনার হতে পারে, যদিও এটি ভাগ করে দেওয়া এটি বোঝা আরও সহজ করে তোলে।

function secondsToTime(seconds) {
    const start = new Date(1970, 1, 1, 0, 0, 0, 0).getTime();
    const end = new Date(1970, 1, 1, 0, 0, parseInt(seconds), 0).getTime();
    const duration = end - start;

    return new Date(duration).toString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
}

2

আমি এটি কীভাবে করেছি তা এখানে। এটি মোটামুটি ভালভাবে কাজ করছে বলে মনে হচ্ছে এবং এটি অত্যন্ত কমপ্যাক্ট। (যদিও এটি প্রচুর টার্নারি অপারেটর ব্যবহার করে)

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

2

সময়কে (সেকেন্ডে) রূপান্তর করতে আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন HH:MM:SS:

var convertTime = function (input, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    return [
        pad(Math.floor(input / 3600)),
        pad(Math.floor(input % 3600 / 60)),
        pad(Math.floor(input % 60)),
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

বিভাজকটি পাস না করে :এটি (ডিফল্ট) বিভাজক হিসাবে ব্যবহার করে:

time = convertTime(13551.9941351); // --> OUTPUT = 03:45:51

আপনি যদি পৃথক -হিসাবে ব্যবহার করতে চান তবে এটি দ্বিতীয় প্যারামিটার হিসাবে পাস করুন:

time = convertTime(1126.5135155, '-'); // --> OUTPUT = 00-18-46

ডেমো

var convertTime = function (input, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    return [
        pad(Math.floor(input / 3600)),
        pad(Math.floor(input % 3600 / 60)),
        pad(Math.floor(input % 60)),
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

document.body.innerHTML = '<pre>' + JSON.stringify({
    5.3515555 : convertTime(5.3515555),
    126.2344452 : convertTime(126.2344452, '-'),
    1156.1535548 : convertTime(1156.1535548, '.'),
    9178.1351559 : convertTime(9178.1351559, ':'),
    13555.3515135 : convertTime(13555.3515135, ',')
}, null, '\t') +  '</pre>';

আরও দেখুন এই বেহালার



1

এইভাবে আমি এটি করেছি

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) '258 ডি 14 ঘন্টা 5 মি 38' ফিরে আসবে


1

আমি ব্যক্তিগতভাবে নেতৃত্বাধীন জিরো ছাড়াই অগ্রণী ইউনিট (দিন, ঘন্টা, মিনিট) পছন্দ করি। তবে সেকেন্ড সর্বদা মিনিট (0:13) দ্বারা চালিত হওয়া উচিত, এই উপস্থাপনাটি সহজেই 'সময়কাল' হিসাবে বিবেচনা করা হয়, আরও ব্যাখ্যা ছাড়াই (মিনিট, সেকেন্ড (গুলি) ইত্যাদি হিসাবে চিহ্নিত করা) বিভিন্ন ভাষায় (আন্তর্জাতিকীকরণ) ব্যবহারযোগ্য।

    // returns  (-)d.h: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));
    }

1

আপনি মুহুর্ত-সময়কাল-বিন্যাস প্লাগইন সহ 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>

এই ফিডলটিও দেখুন


মাস, দিন, ঘন্টা, মিনিট এবং সেকেন্ডের সাথে কোনও বস্তুর একটি সময়কালকে রূপান্তর করতে একটি কবজের মতো (বিন্যাসিত বিন্যাস ব্যতীত) কাজ করে
পাই হোম সার্ভার

1

const secondsToTime = (seconds, locale) => {
    const date = new Date(0);
    date.setHours(0, 0, seconds, 0);
    return date.toLocaleTimeString(locale);
}
console.log(secondsToTime(3610, "en"));

যেখানে লোকেল প্যারামিটার ("এন", "ডি" ইত্যাদি) alচ্ছিক


1
secToHHMM(number: number) {
    debugger;
    let hours = Math.floor(number / 3600);
    let minutes = Math.floor((number - (hours * 3600)) / 60);
    let seconds = number - (hours * 3600) - (minutes * 60);
    let H, M, S;
    if (hours < 10) H = ("0" + hours);
    if (minutes < 10) M = ("0" + minutes);
    if (seconds < 10) S = ("0" + seconds);
    return (H || hours) + ':' + (M || minutes) + ':' + (S || seconds);
}

1

এখানে 2019 এর জন্য একটি ওয়ান-লাইনার আপডেট করা হয়েছে:

//your date
var someDate = new Date("Wed Jun 26 2019 09:38:02 GMT+0100") 

var result = `${String(someDate.getHours()).padStart(2,"0")}:${String(someDate.getMinutes()).padStart(2,"0")}:${String(someDate.getSeconds()).padStart(2,"0")}`

//result will be "09:38:02"

আমি মনে করি ওপি কোনও অবজেক্টকে নয় একটি সময়কাল (সেকেন্ড) রূপান্তর করতে চায় Date
mrdaliri


1

এখানে একটি মোটামুটি সহজ সমাধান যা কাছের দ্বিতীয়টিকে ঘুরতে পারে!

var returnElapsedTime = function(epoch) {
  //We are assuming that the epoch is in seconds
  var hours = epoch / 3600,
      minutes = (hours % 1) * 60,
      seconds = (minutes % 1) * 60;
  return Math.floor(hours) + ":" + Math.floor(minutes) + ":" + Math.round(seconds);
}


1

এটি এমএমের জন্য সম্প্রতি লিখেছি: এসএস। এটি প্রশ্নের সঠিক নয়, তবে এটি একটি আলাদা ওয়ান-লাইনার ফর্ম্যাট।

const time = 60 * 2 + 35; // 2 minutes, 35 seconds
const str = (~~(time / 60) + "").padStart(2, '0') + ":" + (~~((time / 60) % 1 * 60) + "").padStart(2, '0');

str // 02:35

সম্পাদনা করুন: এটি বিভিন্ন ধরণের জন্য যুক্ত করা হয়েছিল তবে এখানে সেরা সমাধানটি নীচে https://stackoverflow.com/a/25279399/639679

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