আমি কীভাবে HH-MM-SS
জাভাস্ক্রিপ্ট ব্যবহার করে একটি স্ট্রিংয়ে সেকেন্ডে রূপান্তর করতে পারি ?
আমি কীভাবে HH-MM-SS
জাভাস্ক্রিপ্ট ব্যবহার করে একটি স্ট্রিংয়ে সেকেন্ডে রূপান্তর করতে পারি ?
উত্তর:
আপনি ডেটজেস জানেন না ? এটি অবশ্যই জানা উচিত।
ডেটজেস ব্যবহার করে, কেবল কিছু লিখুন:
(new Date).clearTime()
.addSeconds(15457)
.toString('H:mm:ss');
--হালনাগাদ
আজকাল ডেট.জেস পুরানো এবং রক্ষণাবেক্ষণ করা হয় না, তাই " মোমেন্ট.জেএস " ব্যবহার করুন , যা টিজে ক্রোডার দ্বারা নির্দেশিত হিসাবে অনেক ভাল।
- আপডেট 2
দয়া করে @ ফ্র্যাঙ্কের ওয়ান লাইন সমাধানটি ব্যবহার করুন:
new Date(SECONDS * 1000).toISOString().substr(11, 8)
এটি এখন পর্যন্ত সর্বোত্তম সমাধান।
TypeError: Object [object Date] has no method 'clearTime'
।
নীচের মতো জাভাস্ক্রিপ্ট তারিখ পদ্ধতির সাহায্যে আপনি কোনও বাহ্যিক জাভাস্ক্রিপ্ট লাইব্রেরি ছাড়াই এটি পরিচালনা করতে পারেন:
var date = new Date(null);
date.setSeconds(SECONDS); // specify value for SECONDS here
var result = date.toISOString().substr(11, 8);
বা, @ ফ্র্যাঙ্কের মন্তব্য অনুসারে; একটি লাইনার:
new Date(SECONDS * 1000).toISOString().substr(11, 8);
new Date(SECONDS * 1000).toISOString().substr(11, 8);
Object doesn't support property or method 'toISOString'
আমি মনে করি না যে স্ট্যান্ডার্ড ডেট অবজেক্টের কোনও অন্তর্নির্মিত বৈশিষ্ট্যটি আপনার পক্ষে এমনভাবে এমনভাবে কাজ করবে যা কেবল নিজেরাই গণিত করার চেয়ে বেশি সুবিধাজনক।
hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
minutes = Math.floor(totalSeconds / 60);
seconds = totalSeconds % 60;
উদাহরণ:
0.05
মধ্যে hours
পরিবর্তনশীল। আমি এটিকে এটির ভিতরে রেখেছিলাম parseInt
যা এটি আমার ক্ষেত্রে স্থির করেছে, তবে আমি মনে করি না যে এটি সব কিছুর জন্য সঠিক হবে। তবুও, এটি আমাকে সাহায্য করেছে, তাই ধন্যবাদ!
parseInt
এটির জন্য ব্যবহার করতে চান না , এটি স্ট্রিং পার্সিংয়ের জন্য , সংখ্যাগুলি হেরফের করার জন্য নয়। Math.floor
এখানে প্রাসঙ্গিক অপারেশন হবে।
seconds = Math.floor(totalSeconds % 60);
। আমি সেখানেও দশমিক ফলাফল পেয়েছি।
totalSeconds % 60
ভগ্নাংশের অংশ থাকলে totalSeconds
কেবলমাত্র একটি ভগ্নাংশ থাকতে পারে। আপনি মেঝে ফেলতে চান কিনা তা নির্ভর করে আপনি সেই তথ্যটি হারাতে বা এটি ধরে রাখতে চান কিনা তার উপর নির্ভর করবে। (অন্যান্য ফ্লোর অপারেশনগুলি আমরা কোনও তথ্য হারাবেন না, কারণ তারা কেবল ডেটা সাফ করে দিচ্ছে যা শেষ হবে minutes
এবং seconds
।)
console.log( hours +':'+ ('0'+minutes).slice(-2) +':'+ ('0'+seconds).slice(-2) );
আমি জানি এটা বেশ পুরানো, কিন্তু ...
ES2015:
var toHHMMSS = (secs) => {
var sec_num = parseInt(secs, 10)
var hours = Math.floor(sec_num / 3600)
var minutes = Math.floor(sec_num / 60) % 60
var seconds = sec_num % 60
return [hours,minutes,seconds]
.map(v => v < 10 ? "0" + v : v)
.filter((v,i) => v !== "00" || i > 0)
.join(":")
}
এটি আউটপুট দেবে:
toHHMMSS(129600) // 36:00:00
toHHMMSS(13545) // 03:45:45
toHHMMSS(180) // 03:00
toHHMMSS(18) // 00:18
ক্লাইটন তার উত্তরে যেমন উল্লেখ করেছেন , moment.js এর জন্য ব্যবহার করা যেতে পারে:
moment().startOf('day')
.seconds(15457)
.format('H:mm:ss');
moment().startOf('year').seconds(30000000).format('DDD HH:mm:ss')
।
.format('YYYY DDD HH:mm:ss')
function formatSeconds(seconds)
{
var date = new Date(1970,0,1);
date.setSeconds(seconds);
return date.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
}
var timeInSec = "661"; //even it can be string
String.prototype.toHHMMSS = function () {
/* extend the String by using prototypical inheritance */
var seconds = parseInt(this, 10); // don't forget the second param
var hours = Math.floor(seconds / 3600);
var minutes = Math.floor((seconds - (hours * 3600)) / 60);
seconds = seconds - (hours * 3600) - (minutes * 60);
if (hours < 10) {hours = "0"+hours;}
if (minutes < 10) {minutes = "0"+minutes;}
if (seconds < 10) {seconds = "0"+seconds;}
var time = hours+':'+minutes+':'+seconds;
return time;
}
alert("5678".toHHMMSS()); // "01:34:38"
console.log(timeInSec.toHHMMSS()); //"00:11:01"
আমরা এই ফাংশনটিকে অনেক খাটো এবং খাস্তা করতে পারি তবে এটি পাঠযোগ্যতা হ্রাস করে, তাই আমরা এটিকে যতটা সম্ভব সহজ এবং যতটা সম্ভব স্থিতিশীলভাবে লিখব।
অথবা আপনি এখানে এটি কাজ করতে পারেন :
এখানে নম্বর শ্রেণিতে একটি এক্সটেনশন। টুএইচএমএমএসএস () সেকেন্ডকে এইচএইচ: মিমি: এসএস স্ট্রিংয়ে রূপান্তর করে।
Number.prototype.toHHMMSS = function() {
var hours = Math.floor(this / 3600) < 10 ? ("00" + Math.floor(this / 3600)).slice(-2) : Math.floor(this / 3600);
var minutes = ("00" + Math.floor((this % 3600) / 60)).slice(-2);
var seconds = ("00" + (this % 3600) % 60).slice(-2);
return hours + ":" + minutes + ":" + seconds;
}
// Usage: [number variable].toHHMMSS();
// Here is a simple test
var totalseconds = 1234;
document.getElementById("timespan").innerHTML = totalseconds.toHHMMSS();
// HTML of the test
<div id="timespan"></div>
নুবিদের জন্য সংস্করণ অনুসরণ করা সহজ:
var totalNumberOfSeconds = YOURNUMBEROFSECONDS;
var hours = parseInt( totalNumberOfSeconds / 3600 );
var minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
var seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
console.log(result);
এই ফাংশনটি এটি করা উচিত:
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
আরও দেখুন এই বেহালার ।
:
জন্য পূর্বনির্ধারিত হিসাবে সেট করেছে separator
already এটি বিবৃতি দ্বারা করা হয় typeof separator !== 'undefined' ? separator : ':'
। এছাড়াও, আপনার ফাংশনটি কিছু প্রসাধনী পরিবর্তনগুলি সংরক্ষণ করার জন্য খনি হিসাবে বেশ সমান এবং তাদের উভয়ের একই আউটপুট উত্পাদন করা উচিত ... আমার সংস্করণটি ছাড়া আরও ভাল ব্রাউজার সমর্থন রয়েছে। আপনারাই ইন্টারনেট এক্সপ্লোরার বা এমএস এজ <14. এর কোনও সংস্করণে কাজ করবেন না
নীচে প্রদত্ত কোডটি যা কয়েক সেকেন্ডকে hh-mm-ss ফর্ম্যাটে রূপান্তর করবে:
var measuredTime = new Date(null);
measuredTime.setSeconds(4995); // specify value of SECONDS
var MHSTime = measuredTime.toISOString().substr(11, 8);
জাভাস্ক্রিপ্টে রূপান্তর সেকেন্ড থেকে এইচএইচ-এমএম-এসএস ফর্ম্যাটে বিকল্প পদ্ধতি পান
এইচ এইচ: এমএম: এসএস.এমএস এর বিশেষ ক্ষেত্রে (যেমন: "00: 04: 33.637") এফএফএমপিইজি মিলি সেকেন্ড নির্দিষ্ট করার জন্য ব্যবহৃত হয়েছে ।
[-] [এইচ:] এম এম: এস এস [.m ...]
এইচএইচটি ঘন্টাগুলির সংখ্যা, এমএম সর্বোচ্চ 2 টি সংখ্যার জন্য মিনিটের সংখ্যা এবং এসএস সর্বোচ্চ 2 ডিজিটের জন্য সেকেন্ডের সংখ্যা প্রকাশ করে। শেষে মিঃ এসএসের জন্য দশমিক মান প্রকাশ করে।
/* HH:MM:SS.MS to (FLOAT)seconds ---------------*/
function timerToSec(timer){
let vtimer = timer.split(":")
let vhours = +vtimer[0]
let vminutes = +vtimer[1]
let vseconds = parseFloat(vtimer[2])
return vhours * 3600 + vminutes * 60 + vseconds
}
/* Seconds to (STRING)HH:MM:SS.MS --------------*/
function secToTimer(sec){
let o = new Date(0)
let p = new Date(sec*1000)
return new Date(p.getTime()-o.getTime())
.toISOString()
.split("T")[1]
.split("Z")[0]
}
/* Example: 7hours, 4 minutes, 33 seconds and 637 milliseconds */
const t = "07:04:33.637"
console.log(
t + " => " +
timerToSec(t) +
"s"
)
/* Test: 25473 seconds and 637 milliseconds */
const s = 25473.637 // "25473.637"
console.log(
s + "s => " +
secToTimer(s)
)
ব্যবহারের উদাহরণ, একটি মিলিসেকেন্ড পরিবহন টাইমার:
/* Seconds to (STRING)HH:MM:SS.MS --------------*/
function secToTimer(sec){
let o = new Date(0)
let p = new Date(sec*1000)
return new Date(p.getTime()-o.getTime())
.toISOString()
.split("T")[1]
.split("Z")[0]
}
let job, origin = new Date().getTime()
const timer = () => {
job = requestAnimationFrame(timer)
OUT.textContent = secToTimer((new Date().getTime() - origin) / 1000)
}
requestAnimationFrame(timer)
span {font-size:4rem}
<span id="OUT"></span>
<br>
<button onclick="origin = new Date().getTime()">RESET</button>
<button onclick="requestAnimationFrame(timer)">RESTART</button>
<button onclick="cancelAnimationFrame(job)">STOP</button>
মিডিয়া উপাদানকে আবদ্ধ করে ব্যবহারের উদাহরণ
/* Seconds to (STRING)HH:MM:SS.MS --------------*/
function secToTimer(sec){
let o = new Date(0)
let p = new Date(sec*1000)
return new Date(p.getTime()-o.getTime())
.toISOString()
.split("T")[1]
.split("Z")[0]
}
VIDEO.addEventListener("timeupdate", function(e){
OUT.textContent = secToTimer(e.target.currentTime)
}, false)
span {font-size:4rem}
<span id="OUT"></span><br>
<video id="VIDEO" width="400" controls autoplay>
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>
প্রশ্নের বাইরে, এই ফাংশনগুলি পিএইচপিতে লেখা:
<?php
/* HH:MM:SS to (FLOAT)seconds ------------------*/
function timerToSec($timer){
$vtimer = explode(":",$timer);
$vhours = (int)$vtimer[0];
$vminutes = (int)$vtimer[1];
$vseconds = (float)$vtimer[2];
return $vhours * 3600 + $vminutes * 60 + $vseconds;
}
/* Seconds to (STRING)HH:MM:SS -----------------*/
function secToTimer($sec){
return explode(" ", date("H:i:s", $sec))[0];
}
+ "." + p.getMilliseconds()
কেবল ব্যবহার করে বাদ দিতে পারেনnew Date(p.getTime()-o.getTime()).toISOString().split("T")[1].split("Z")[0]
var time1 = date1.getTime();
var time2 = date2.getTime();
var totalMilisec = time2 - time1;
alert(DateFormat('hh:mm:ss',new Date(totalMilisec)))
/* ----------------------------------------------------------
* Field | Full Form | Short Form
* -------------|--------------------|-----------------------
* Year | yyyy (4 digits) | yy (2 digits)
* Month | MMM (abbr.) | MM (2 digits)
| NNN (name) |
* Day of Month | dd (2 digits) |
* Day of Week | EE (name) | E (abbr)
* Hour (1-12) | hh (2 digits) |
* Minute | mm (2 digits) |
* Second | ss (2 digits) |
* ----------------------------------------------------------
*/
function DateFormat(formatString,date){
if (typeof date=='undefined'){
var DateToFormat=new Date();
}
else{
var DateToFormat=date;
}
var DAY = DateToFormat.getDate();
var DAYidx = DateToFormat.getDay();
var MONTH = DateToFormat.getMonth()+1;
var MONTHidx = DateToFormat.getMonth();
var YEAR = DateToFormat.getYear();
var FULL_YEAR = DateToFormat.getFullYear();
var HOUR = DateToFormat.getHours();
var MINUTES = DateToFormat.getMinutes();
var SECONDS = DateToFormat.getSeconds();
var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var arrDay=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var strMONTH;
var strDAY;
var strHOUR;
var strMINUTES;
var strSECONDS;
var Separator;
if(parseInt(MONTH)< 10 && MONTH.toString().length < 2)
strMONTH = "0" + MONTH;
else
strMONTH=MONTH;
if(parseInt(DAY)< 10 && DAY.toString().length < 2)
strDAY = "0" + DAY;
else
strDAY=DAY;
if(parseInt(HOUR)< 10 && HOUR.toString().length < 2)
strHOUR = "0" + HOUR;
else
strHOUR=HOUR;
if(parseInt(MINUTES)< 10 && MINUTES.toString().length < 2)
strMINUTES = "0" + MINUTES;
else
strMINUTES=MINUTES;
if(parseInt(SECONDS)< 10 && SECONDS.toString().length < 2)
strSECONDS = "0" + SECONDS;
else
strSECONDS=SECONDS;
switch (formatString){
case "hh:mm:ss":
return strHOUR + ':' + strMINUTES + ':' + strSECONDS;
break;
//More cases to meet your requirements.
}
}
আমি উপরের সুন্দর উত্তরের জন্য একটু ব্যাখ্যা দিতে চেয়েছিলাম:
var totalSec = new Date().getTime() / 1000;
var hours = parseInt( totalSec / 3600 ) % 24;
var minutes = parseInt( totalSec / 60 ) % 60;
var seconds = totalSec % 60;
var result = (hours < 10 ? "0" + hours : hours) + "-" + (minutes < 10 ? "0" + minutes : minutes) + "-" + (seconds < 10 ? "0" + seconds : seconds);
দ্বিতীয় লাইনে, যেহেতু 1 ঘন্টার মধ্যে 3600 সেকেন্ড রয়েছে, তাই আমরা ঘন্টাগুলি মোট সংখ্যা পেতে মোট সেকেন্ডের সংখ্যাকে 3600 দিয়ে বিভক্ত করি। আমরা কোনও দশমিক বন্ধ করতে পার্সেন্ট ব্যবহার করি। যদি টোটল সেকটি 12600 (সাড়ে তিন ঘন্টা) হয়, তবে পার্সিয়ান্ট (টোটেলসেক / 3600) 3 ফিরে আসবে, যেহেতু আমাদের কাছে পুরো 3 ঘন্টা থাকবে। এই ক্ষেত্রে আমাদের কেন% 24 দরকার? যদি আমরা ২৪ ঘন্টা অতিক্রম করি, তবে আমাদের বলুন যে আমাদের 25 ঘন্টা (90000 সেকেন্ড) রয়েছে, তবে এখানকার মডুলুগুলি 25 ফেরার পরিবর্তে আমাদের আবার 1 এ নিয়ে যাবে It এটি 24 ঘন্টার সীমার মধ্যেই ফলাফলকে সীমাবদ্ধ রাখছে, যেহেতু 24 ঘন্টা রয়েছে একদিন.
আপনি যখন এই জাতীয় কিছু দেখেন:
25 % 24
এইভাবে ভেবে দেখুন:
25 mod 24 or what is the remainder when we divide 25 by 24
এই পুরানো থ্রেডটিতে চিমিং করা - ওপিতে বলা হয়েছে এইচএইচ: এমএম: এসএস এবং অনেকগুলি সমাধান কাজ করে, যতক্ষণ না আপনি বুঝতে পারবেন আপনার 24 ঘন্টারও বেশি তালিকাভুক্ত হওয়া দরকার। এবং সম্ভবত আপনি কোডের একক লাইন চেয়ে বেশি চান না। আপনি এখানে যান:
d=(s)=>{f=Math.floor;g=(n)=>('00'+n).slice(-2);return f(s/3600)+':'+g(f(s/60)%60)+':'+g(s%60)}
এটি এইচ +: এমএম: এসএস প্রদান করে। এটি ব্যবহার করতে, সহজভাবে ব্যবহার করুন:
d(91260); // returns "25:21:00"
d(960); // returns "0:16:00"
... আমি চেষ্টা করেছি একটি কম ওয়ানলাইনারের সাথে যোগাযোগের জন্য, সর্বনিম্ন কোডটি সম্ভব ব্যবহার করার চেষ্টা করেছি।
আপনি কি কোনও ডেট অবজেক্টে সেকেন্ড যোগ করার চেষ্টা করেছেন?
var dt = new Date();
dt.addSeconds(1234);
একটি নমুনা: https://jsfiddle.net/j5g2p0dc/5/
আপডেট হয়েছে: নমুনা লিঙ্কটি অনুপস্থিত তাই আমি একটি নতুন তৈরি করেছি।
addSeconds
তারিখের মতো পছন্দসই পদ্ধতিটি ব্যবহার করছেন Date.prototype.addSeconds = function(seconds){...}
। হ্যাঁ, এটি কাজ করে, আপডেটের জন্য ধন্যবাদ।
এখানে powtac এর উত্তর ভিত্তিক HH-MM-SS ফর্ম্যাটে রূপান্তর সেকেন্ড একটি ফাংশন এখানে
/**
* Convert seconds to hh-mm-ss format.
* @param {number} totalSeconds - the total seconds to convert to hh- mm-ss
**/
var SecondsTohhmmss = function(totalSeconds) {
var hours = Math.floor(totalSeconds / 3600);
var minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
var seconds = totalSeconds - (hours * 3600) - (minutes * 60);
// round seconds
seconds = Math.round(seconds * 100) / 100
var result = (hours < 10 ? "0" + hours : hours);
result += "-" + (minutes < 10 ? "0" + minutes : minutes);
result += "-" + (seconds < 10 ? "0" + seconds : seconds);
return result;
}
উদাহরণ ব্যবহার
var seconds = SecondsTohhmmss(70);
console.log(seconds);
// logs 00-01-10
সমস্ত উত্তরগুলি দেখার পরে এবং সেগুলির বেশিরভাগের সাথে সন্তুষ্ট না হওয়ার পরে, আমি এটাই সামনে এলাম। আমি জানি আমি কথোপকথনে খুব দেরী করেছি, তবে এখানে এটি যাইহোক।
function secsToTime(secs){
var time = new Date();
// create Date object and set to today's date and time
time.setHours(parseInt(secs/3600) % 24);
time.setMinutes(parseInt(secs/60) % 60);
time.setSeconds(parseInt(secs%60));
time = time.toTimeString().split(" ")[0];
// time.toString() = "HH:mm:ss GMT-0800 (PST)"
// time.toString().split(" ") = ["HH:mm:ss", "GMT-0800", "(PST)"]
// time.toTimeString().split(" ")[0]; = "HH:mm:ss"
return time;
}
আমি একটি নতুন তারিখ অবজেক্ট তৈরি করি, সময়টিকে আমার প্যারামিটারে পরিবর্তন করি, তারিখ অবজেক্টকে একটি সময়ের স্ট্রিংয়ে রূপান্তর করি এবং স্ট্রিংকে বিভক্ত করে এবং প্রয়োজনীয় অংশটি ফেরত দিয়ে অতিরিক্ত জিনিসগুলি সরিয়ে ফেলি।
আমি ভেবেছিলাম আমি এই পদ্ধতিটি ভাগ করে নেব, যেহেতু এটি "এইচএইচ: মিমি: এসএস" ফর্ম্যাটে ফলাফল পাওয়ার জন্য রেইগেক্স, যুক্তি এবং গণিতের অ্যাক্রোব্যাটিকসের প্রয়োজনীয়তা সরিয়ে দেয় এবং পরিবর্তে এটি পদ্ধতিতে অন্তর্নিহিতের উপর নির্ভর করে।
আপনি এখানে ডকুমেন্টেশনটি একবার দেখতে চাইতে পারেন: https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / গ্লোবাল_অবজেক্টস / তারিখ
এই সমস্যার সমাধান করার জন্য প্রচুর বিকল্প রয়েছে এবং সুস্পষ্টভাবে ভাল বিকল্প সম্পর্কে পরামর্শ দেওয়া হয়েছে তবে আমি এখানে আরও একটি অনুকূলিতকরণ কোড যুক্ত করতে চাই
function formatSeconds(sec) {
return [(sec / 3600), ((sec % 3600) / 60), ((sec % 3600) % 60)]
.map(v => v < 10 ? "0" + parseInt(v) : parseInt(v))
.filter((i, j) => i !== "00" || j > 0)
.join(":");
}
আপনি যদি 10 এর চেয়ে কম সংখ্যার সাথে ফর্ম্যাট শূন্য না চান তবে আপনি ব্যবহার করতে পারেন
function formatSeconds(sec) {
return parseInt(sec / 3600) + ':' + parseInt((sec % 3600) / 60) + ':' + parseInt((sec % 3600) % 60);
}
নমুনা কোড http://fiddly.org/1c476/1
এক লাইনে টিজে ক্রডারের সমাধানটি ব্যবহার করে:
secToHHMMSS = seconds => `${Math.floor(seconds / 3600)}:${Math.floor((seconds % 3600) / 60)}:${Math.floor((seconds % 3600) % 60)}`
এক লাইনে, আরেকটি সমাধান যা দিনগুলিও গণনা করে:
secToDHHMMSS = seconds => `${parseInt(seconds / 86400)}d ${new Date(seconds * 1000).toISOString().substr(11, 8)}`
সূত্র: https://gist.github.com/martinbean/2bf88c446be8048814cf02b2641ba276
আপনি নীচে কোড ব্যবহার করতে পারেন:
int ss = nDur%60;
nDur = nDur/60;
int mm = nDur%60;
int hh = nDur/60;
new Date().toString().split(" ")[4];
ফলাফল 15:08:03
অ্যাঙ্গুলারজেএস ব্যবহার করা যে কোনও ব্যক্তির জন্য, একটি সহজ সমাধান হ'ল তারিখের এপিআই দিয়ে মান ফিল্টার করা যা মিলি সেকেন্ডগুলিকে অনুরোধ করা ফর্ম্যাটটির ভিত্তিতে স্ট্রিংয়ে রূপান্তর করে। উদাহরণ:
<div>Offer ends in {{ timeRemaining | date: 'HH:mm:ss' }}</div>
নোট করুন যে এটি মিলিসেকেন্ডগুলি প্রত্যাশা করে, তাই আপনি সেকেন্ড থেকে রূপান্তর করতে পারলে 1000 দ্বারা গুণমানের সময়কে গুণতে চাইতে পারেন (আসল প্রশ্নটি যেমন তৈরি হয়েছিল)।
আমি কেসটি চালিয়েছি এমন কয়েকজন উল্লেখ করেছেন যেখানে এক দিনের চেয়ে সেকেন্ডের সংখ্যা বেশি। এখানে @ হরিশ আঁচুর শীর্ষ রেট করা উত্তরের একটি অভিযোজিত সংস্করণ রয়েছে যা দীর্ঘ সময়ের জন্য অ্যাকাউন্ট করে:
function secondsToTime(seconds) {
const arr = new Date(seconds * 1000).toISOString().substr(11, 8).split(':');
const days = Math.floor(seconds / 86400);
arr[0] = parseInt(arr[0], 10) + days * 24;
return arr.join(':');
}
উদাহরণ:
secondsToTime(101596) // outputs '28:13:16' as opposed to '04:13:16'
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("186".toHHMMSS());
আমি হ্যান্ডেল করতে সক্ষম হতে চাই বলে এখানে উত্তরগুলির কোনওোটাই আমার প্রয়োজনীয়তা পূরণ করে না
যদিও এগুলি ওপি দ্বারা প্রয়োজনীয় নয়, প্রান্তের মামলাগুলি কভার করা ভাল অনুশীলন, বিশেষত যখন সামান্য প্রচেষ্টা লাগে।
এটি অত্যন্ত সুস্পষ্ট যে ওপির অর্থ সেকেন্ড বলার সময় একটি সেকেন্ডের সংখ্যা । আপনার ফাংশনটি কেন খোলা হবে String
?
function secondsToTimeSpan(seconds) {
const value = Math.abs(seconds);
const days = Math.floor(value / 1440);
const hours = Math.floor((value - (days * 1440)) / 3600);
const min = Math.floor((value - (days * 1440) - (hours * 3600)) / 60);
const sec = value - (days * 1440) - (hours * 3600) - (min * 60);
return `${seconds < 0 ? '-':''}${days > 0 ? days + '.':''}${hours < 10 ? '0' + hours:hours}:${min < 10 ? '0' + min:min}:${sec < 10 ? '0' + sec:sec}`
}
secondsToTimeSpan(0); // => 00:00:00
secondsToTimeSpan(1); // => 00:00:01
secondsToTimeSpan(1440); // => 1.00:00:00
secondsToTimeSpan(-1440); // => -1.00:00:00
secondsToTimeSpan(-1); // => -00:00:01
secondsToTimeSpan(8991)
প্রত্যাবর্তন 6.00:05:51
যেখানে আমি মনে করি এটি ফিরে 00:02:29:51
একটি সাধারণ টাইমস্প্যান অবজেক্ট তৈরি করার আগে আমি এই কোডটি ব্যবহার করেছি:
function TimeSpan(time) {
this.hours = 0;
this.minutes = 0;
this.seconds = 0;
while(time >= 3600)
{
this.hours++;
time -= 3600;
}
while(time >= 60)
{
this.minutes++;
time -= 60;
}
this.seconds = time;
}
var timespan = new Timespan(3662);