সেকেন্ডকে আওয়ারে রূপান্তর করুন: মিনিট: দ্বিতীয়


330

আমাকে "ঘন্টা: মিনিট: দ্বিতীয়" এ সেকেন্ড রূপান্তর করতে হবে।

উদাহরণস্বরূপ: "685" "00:11:25" এ রূপান্তরিত

আমি কীভাবে এটি অর্জন করতে পারি?


4
প্রশ্নটি অস্পষ্ট: আপনি নিজের secondsএকটি date/timeবা কিছু সময়কে রূপান্তর করতে চান : মিনিট: সেকেন্ড?
ওয়ান্ডার্ল্যান্ড

উত্তর:


741

আপনি gmdate()ফাংশনটি ব্যবহার করতে পারেন :

echo gmdate("H:i:s", 685);

166
সেকেন্ডের সংখ্যা যদিও 86,400 এর নিচে রয়েছে তা নিশ্চিত করে নেওয়া ভাল।
salathe

12
এইচ একক দিনে কয়েক ঘন্টা পরিমাণ উপস্থাপন করে। সুতরাং আপনার যদি 90000 সেকেন্ড থাকে এবং আপনি এটিতে এইচ ব্যবহার করেন ফলাফল 01 (পরের দিনের প্রথম ঘন্টা) হবে। 25 নয় - দিনে কেবল 24 ঘন্টা থাকে।
মার্সিনওয়ালি

7
আমি নিশ্চিত নই যে এটি সঠিক উত্তর, এটি একটি উত্পন্ন করবে datetime... সুতরাং আমরা যদি ফলাফলটি 24 ঘন্টা আশা করি তবে এটি কার্যকর হবে না। এছাড়াও যদি আমাদের কিছু নেতিবাচক ফলাফল প্রয়োজন (উদাহরণস্বরূপ অফসেটের সাথে কাজ করা) এটি কাজ করবে না। -1বিশদ বিবরণ জন্য
ওয়ান্ডারল্যান্ড

54
২৪ ঘণ্টার বেশি সময়ের জন্য এটি সুস্পষ্ট ত্রুটির কারণে গ্রহণযোগ্য উত্তর হওয়া উচিত নয়।
স্কট ফ্ল্যাক

10
দিনের সাথে ব্যবহারের জন্য যখন সংখ্যা 85399 এর চেয়ে বেশি বড় হতে পারে আপনি echo gmdate("z H:i:s", 685);z ব্যবহার করতে পারেন বছরের সাথে শুরু হওয়া দিনগুলি 0 দিয়ে শুরু হয় আপনি আপনার নির্দিষ্ট প্রয়োজনগুলি পূরণ করতে অবশ্যই পিএইচপি তারিখের ম্যানুয়াল পর্যালোচনা করতে পারেন।
নাইটউল্ফ

177

এক ঘন্টা 3600 সেকস, এক মিনিট 60 সেকস তাই কেন নয়:

<?php

$init = 685;
$hours = floor($init / 3600);
$minutes = floor(($init / 60) % 60);
$seconds = $init % 60;

echo "$hours:$minutes:$seconds";

?>

যা উত্পাদন করে:

$ php file.php
0:11:25

(আমি এটি খুব বেশি পরীক্ষা করে দেখিনি, সুতরাং মেঝেতে বা ত্রুটি হতে পারে)


তবে সে দুটি শূন্য চায় ... "00:11:25" "0:11:25"
অ্যানিমুসন

52
printf("%02d:%02d:%02d", $hours, $minutes, $seconds);
অ্যাম্বার

5
উত্তম উত্তর, তবে নিশ্চিত হয়ে নিন যে আপনি প্রতিটি অপারেশনের মধ্যে $ ঘন্টা * 3600 এবং $ মিনিট * 60 sub আর বিয়োগ করেছেন অন্যথায় আপনি দ্বিগুণ গণনা মিনিট এবং সেকেন্ড শেষ করবেন।
মাইক স্টো

5
অ্যাম্বার এর মন্তব্যে যোগ করতে, sprintfএটি মুদ্রণের পরিবর্তে মানটি ব্যবহার করুন।
অ্যালেন বাটলার

77

আপনি এখানে যান

function format_time($t,$f=':') // t = seconds, f = separator 
{
  return sprintf("%02d%s%02d%s%02d", floor($t/3600), $f, ($t/60)%60, $f, $t%60);
}

echo format_time(685); // 00:11:25

1
নেতিবাচক মানগুলির জন্য কাজ করে না। আপনার যদি নেতিবাচক সেকেন্ডের ব্যবধান থাকে, তবে এটি ব্যবহার করুন:return ($t< 0 ? '-' : '') . sprintf("%02d%s%02d%s%02d", floor(abs($t)/3600), $f, (abs($t)/60)%60, $f, abs($t)%60); }
আজাক

66

gmdate() সেকেন্ড 86400(1 দিন) এর চেয়ে কম হলে কেবল ফাংশনটি ব্যবহার করুন :

$seconds = 8525;
echo gmdate('H:i:s', $seconds);
# 02:22:05

দেখুন: জিএমডিট ()

ডেমো চালান


'ফুট' বিন্যাসে সেকেন্ডে রূপান্তর করুন কোনও সীমা নেই * :

$seconds = 8525;
$H = floor($seconds / 3600);
$i = ($seconds / 60) % 60;
$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);
# 02:22:05

দেখুন: মেঝে () , স্প্রিন্টফ () , গণিত অপারেটরগুলি

ডেমো চালান


DateTimeএক্সটেনশনের ব্যবহারের উদাহরণ :

$seconds = 8525;
$zero    = new DateTime("@0");
$offset  = new DateTime("@$seconds");
$diff    = $zero->diff($offset);
echo sprintf("%02d:%02d:%02d", $diff->days * 24 + $diff->h, $diff->i, $diff->s);
# 02:22:05

দেখুন: ডেটটাইম :: __ কনস্ট্রাক্ট () , ডেটটাইম :: মডিফাই () , ক্লোন , স্প্রিন্টফ ()

ডেমো চালান


মাইএসকিউএল উদাহরণ ফলাফলের পরিসীমা TIME এর ডাটা টাইপ, যা থেকে যে সীমাবদ্ধ -838:59:59করতে838:59:59 :

SELECT SEC_TO_TIME(8525);
# 02:22:05

দেখুন: SEC_TO_TIME

ডেমো চালান


পোস্টগ্রিএসকিউএল উদাহরণ:

SELECT TO_CHAR('8525 second'::interval, 'HH24:MI:SS');
# 02:22:05

ডেমো চালান


30

অন্যান্য সমাধানগুলি ব্যবহার করে gmdateতবে প্রান্তের ক্ষেত্রে ব্যর্থ হয় যেখানে আপনার 86400 সেকেন্ডের বেশি থাকে। এটি পেতে, আমরা কেবল নিজেরাই ঘন্টাগুলির সংখ্যা গণনা করতে পারি, তারপরে gmdateবাকী সেকেন্ডগুলি মিনিট / সেকেন্ডে গণনা করি ।

echo floor($seconds / 3600) . gmdate(":i:s", $seconds % 3600);

ইনপুট: 6030 আউটপুট:1:40:30

ইনপুট: 2000006030 আউটপুট:555557:13:50


16
// TEST
// 1 Day 6 Hours 50 Minutes 31 Seconds ~ 111031 seconds

$time = 111031; // time duration in seconds

$days = floor($time / (60 * 60 * 24));
$time -= $days * (60 * 60 * 24);

$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);

$minutes = floor($time / 60);
$time -= $minutes * 60;

$seconds = floor($time);
$time -= $seconds;

echo "{$days}d {$hours}h {$minutes}m {$seconds}s"; // 1d 6h 50m 31s

$ HMS = gmdate ( "এইচ: আমি: S", 12720); এটি ডে-আওয়ার-মিন-সেক পাওয়া যথেষ্ট নয়
মুঘল

7
gmdate("H:i:s", no_of_seconds);

1 দিনের বেশি (এক দিনের মধ্যে সেকেন্ড) বেশি H:i:sহলে ফর্ম্যাটে সময় দেবে না no_of_seconds
এটি দিনের মানটিকে অবহেলা করবে এবং কেবলমাত্র দেবেHour:Min:Seconds

উদাহরণ স্বরূপ:

gmdate("H:i:s", 89922); // returns 0:58:42 not (1 Day 0:58:42) or 24:58:42

6

এখানে এমন একটি লাইন রয়েছে যা নেতিবাচক সেকেন্ড এবং 1 দিনের বেশি সেকেন্ডের জন্য পরিচালনা করে।

sprintf("%s:%'02s:%'02s\n", intval($seconds/60/60), abs(intval(($seconds%3600) / 60)), abs($seconds%60));

উদাহরণ স্বরূপ:

$seconds= -24*60*60 - 2*60*60 - 3*60 - 4; // minus 1 day 2 hours 3 minutes 4 seconds
echo sprintf("%s:%'02s:%'02s\n", intval($seconds/60/60), abs(intval(($seconds%3600) / 60)), abs($seconds%60));

আউটপুট: -26: 03: 04


নেতিবাচক এবং 1 ঘন্টােরও কম হলে কাজ করবে না: -3000 = 0:50:00 হওয়া উচিত -0: 50: 00
টনি ব্রিক্স

5

একটি অ্যারের ফিরে আসার জন্য এই জাতীয় ফাংশন লিখুন

function secondsToTime($seconds) {

  // extract hours
  $hours = floor($seconds / (60 * 60));

  // extract minutes
  $divisor_for_minutes = $seconds % (60 * 60);
  $minutes = floor($divisor_for_minutes / 60);

  // extract the remaining seconds
  $divisor_for_seconds = $divisor_for_minutes % 60;
  $seconds = ceil($divisor_for_seconds);

  // return the final array
  $obj = array(
      "h" => (int) $hours,
      "m" => (int) $minutes,
      "s" => (int) $seconds,
   );

  return $obj;
}

তারপরে কেবল এইভাবে ফাংশনটি কল করুন:

secondsToTime(100);

আউটপুট হয়

Array ( [h] => 0 [m] => 1 [s] => 40 )

5

আপনি যদি স্বীকৃত উত্তর বা জনপ্রিয় পছন্দগুলি পছন্দ না করেন তবে এটি ব্যবহার করে দেখুন

function secondsToTime($seconds_time)
{
    if ($seconds_time < 24 * 60 * 60) {
        return gmdate('H:i:s', $seconds_time);
    } else {
        $hours = floor($seconds_time / 3600);
        $minutes = floor(($seconds_time - $hours * 3600) / 60);
        $seconds = floor($seconds_time - ($hours * 3600) - ($minutes * 60));
        return "$hours:$minutes:$seconds";
    }
}

secondsToTime(108620); // 30:10:20

4

দেখা:

    /** 
     * Convert number of seconds into hours, minutes and seconds 
     * and return an array containing those values 
     * 
     * @param integer $inputSeconds Number of seconds to parse 
     * @return array 
     */ 

    function secondsToTime($inputSeconds) {

        $secondsInAMinute = 60;
        $secondsInAnHour  = 60 * $secondsInAMinute;
        $secondsInADay    = 24 * $secondsInAnHour;

        // extract days
        $days = floor($inputSeconds / $secondsInADay);

        // extract hours
        $hourSeconds = $inputSeconds % $secondsInADay;
        $hours = floor($hourSeconds / $secondsInAnHour);

        // extract minutes
        $minuteSeconds = $hourSeconds % $secondsInAnHour;
        $minutes = floor($minuteSeconds / $secondsInAMinute);

        // extract the remaining seconds
        $remainingSeconds = $minuteSeconds % $secondsInAMinute;
        $seconds = ceil($remainingSeconds);

        // return the final array
        $obj = array(
            'd' => (int) $days,
            'h' => (int) $hours,
            'm' => (int) $minutes,
            's' => (int) $seconds,
        );
        return $obj;
    }

থেকে: সেকেন্ডগুলিকে দিন, ঘন্টা, মিনিট এবং সেকেন্ডে রূপান্তর করুন


3

এটা চেষ্টা কর:

date("H:i:s",-57600 + 685);

Http://bytes.com/topic/php/answers/3917-seconds-converted-hh-mm-ss থেকে নেওয়া


সম্পূর্ণরূপে নিশ্চিত নয়, তবে আমি নিশ্চিত যে এটি 0 এ সময় নির্ধারণ করছে এবং তারপরে যে কোনও কিছুই কেবল সঠিক উত্তর হতে পারে
কেরি জোন্স

এটি 0 মিনিটের সামনে লিড
বারফুন

@ বারফুন - সত্য, তবে আমি বিশ্বাস করি এম.এজেজ এটিই চেয়েছিলেন, এবং এটি সময়ে ব্যবহৃত একটি মান। এটি আমার "03:07:05" বা "3: 7" এর পরিবর্তে "3: 7: 5" এর অভিজ্ঞতা থেকে অদ্ভুত লাগে বলে মনে হচ্ছে এটি আমার কাছে একটি অনুপাতের মতো।
কেরি জোন্স

3

কোনও প্রকল্পে আমি কাজ করার সময়গুলি ট্র্যাক করে থাকায় জিএমডিটেট () ফাংশনটি আমার পক্ষে কাজ করেনি এবং যদি এটি 24 ঘন্টার বেশি হয়, 24 ঘন্টা বিয়োগের পরে আপনি পরিমাণটি অবশিষ্ট রাখবেন। অন্য কথায় 37 ঘন্টা 13 ঘন্টা হয়ে যায়। (উপরে বর্ণিত সমস্ত গ্লাভিক - আপনার উদাহরণগুলির জন্য ধন্যবাদ!) এটি ভালভাবে কাজ করেছে:

Convert seconds to format by 'foot' no limit :
$seconds = 8525;
$H = floor($seconds / 3600);
$i = ($seconds / 60) % 60;
$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);
# 02:22:05

3

এই ফাংশনটি আমার কাজে লাগবে, আপনি এটি বাড়িয়ে দিতে পারেন:

function formatSeconds($seconds) {

if(!is_integer($seconds)) {
    return FALSE;
}

$fmt = "";

$days = floor($seconds / 86400);
if($days) {
    $fmt .= $days."D ";
    $seconds %= 86400;
}

$hours = floor($seconds / 3600);
if($hours) {
    $fmt .= str_pad($hours, 2, '0', STR_PAD_LEFT).":";
    $seconds %= 3600;
}

$mins = floor($seconds / 60 );
if($mins) {
    $fmt .= str_pad($mins, 2, '0', STR_PAD_LEFT).":";
    $seconds %= 60;
}

$fmt .= str_pad($seconds, 2, '0', STR_PAD_LEFT);

return $fmt;}

2

সমাধান থেকে: https://gist.github.com/SteveJobzniak/c91a8e2426bac5cb9b0cbc1bdbc45e4b

এখানে একটি খুব পরিষ্কার এবং সংক্ষিপ্ত পদ্ধতি!

এই কোডটি ক্লান্তিকর ফাংশন কলগুলি এবং টুকরো টুকরো স্ট্রিং-বিল্ডিং যতটা সম্ভব এড়ানো যায় এবং লোকেদের জন্য এটি করা বড় এবং বিশাল ফাংশনগুলি।

এটি "1h05m00s" ফর্ম্যাট তৈরি করে এবং মিনিট এবং সেকেন্ডের জন্য নেতৃস্থানীয় শূন্যগুলি ব্যবহার করে, যতক্ষণ না অন্য শূন্য সময়ের উপাদানগুলি তাদের পূর্ববর্তী হয়।

এবং আপনাকে "0h00m01s" এর মতো অকেজো তথ্য না দেওয়ার জন্য সমস্ত খালি নেতৃস্থানীয় উপাদান এড়িয়ে চলেছে (পরিবর্তে এটি "1s" হিসাবে প্রদর্শিত হবে)।

উদাহরণ ফলাফল: "1s", "1m00s", "19m08s", "1h00m00s", "4h08m39s"।

$duration = 1; // values 0 and higher are supported!
$converted = [
    'hours' => floor( $duration / 3600 ),
    'minutes' => floor( ( $duration / 60 ) % 60 ),
    'seconds' => ( $duration % 60 )
];
$result = ltrim( sprintf( '%02dh%02dm%02ds', $converted['hours'], $converted['minutes'], $converted['seconds'] ), '0hm' );
if( $result == 's' ) { $result = '0s'; }

আপনি যদি কোডটি আরও ছোট করতে চান (তবে কম পাঠযোগ্য) তবে আপনি $convertedঅ্যারে এড়াতে পারবেন এবং পরিবর্তে মানগুলি সরাসরি স্প্রিন্টফ () কলটিতে রেখে দিতে পারেন:

$duration = 1; // values 0 and higher are supported!
$result = ltrim( sprintf( '%02dh%02dm%02ds', floor( $duration / 3600 ), floor( ( $duration / 60 ) % 60 ), ( $duration % 60 ) ), '0hm' );
if( $result == 's' ) { $result = '0s'; }

উপরের কোড পিসের উভয় ক্ষেত্রেই সময়কাল 0 বা উচ্চতর হতে হবে । নেতিবাচক সময়সীমা সমর্থিত নয়। তবে আপনি পরিবর্তে নিম্নলিখিত বিকল্প কোড ব্যবহার করে নেতিবাচক সময়সীমা পরিচালনা করতে পারেন:

$duration = -493; // negative values are supported!
$wasNegative = FALSE;
if( $duration < 0 ) { $wasNegative = TRUE; $duration = abs( $duration ); }
$converted = [
    'hours' => floor( $duration / 3600 ),
    'minutes' => floor( ( $duration / 60 ) % 60 ),
    'seconds' => ( $duration % 60 )
];
$result = ltrim( sprintf( '%02dh%02dm%02ds', $converted['hours'], $converted['minutes'], $converted['seconds'] ), '0hm' );
if( $result == 's' ) { $result = '0s'; }
if( $wasNegative ) { $result = "-{$result}"; }
// $result is now "-8m13s"

মনে রাখবেন যে gmdate()হ্যাকটি এর চেয়ে আরও ছোট, তবে কেবল 24 ঘন্টা পর্যন্ত সময়সীমা সমর্থন করে। আপনি জিএমডিট ট্রিকটি ব্যবহার করলে ২৪ ঘন্টার উপরে যে কোনও কিছু ব্যর্থ হবে!
gw0

1

এর জন্য ডেটটাইম ব্যবহার করার একটি সহজ উপায় হ'ল:

    $time = 60; //sec.
    $now = time();
    $rep = new DateTime('@'.$now);
    $diff = new DateTime('@'.($now+$time));
    $return = $diff->diff($rep)->format($format);

    //output:  01:04:65

এটি একটি সাধারণ সমাধান যা আপনাকে তারিখের সময় পদ্ধতিটি বিন্যাসটি ব্যবহার করার ক্ষমতা দেয়।


1

জাভাতে আপনি এইভাবে ব্যবহার করতে পারেন।

   private String getHmaa(long seconds) {
    String string;
    int hours = (int) seconds / 3600;
    int remainder = (int) seconds - hours * 3600;
    int mins = remainder / 60;
    //remainder = remainder - mins * 60;
    //int secs = remainder;

    if (hours < 12 && hours > 0) {
        if (mins < 10) {
            string = String.valueOf((hours < 10 ? "0" + hours : hours) + ":" + (mins > 0 ? "0" + mins : "0") + " AM");
        } else {
            string = String.valueOf((hours < 10 ? "0" + hours : hours) + ":" + (mins > 0 ? mins : "0") + " AM");
        }
    } else if (hours >= 12) {
        if (mins < 10) {
            string = String.valueOf(((hours - 12) < 10 ? "0" + (hours - 12) : ((hours - 12) == 12 ? "0" : (hours - 12))) + ":" + (mins > 0 ? "0" + mins : "0") + ((hours - 12) == 12 ? " AM" : " PM"));
        } else {
            string = String.valueOf(((hours - 12) < 10 ? "0" + (hours - 12) : ((hours - 12) == 12 ? "0" : (hours - 12))) + ":" + (mins > 0 ? mins : "0") + ((hours - 12) == 12 ? " AM" : " PM"));
        }
    } else {
        if (mins < 10) {
            string = String.valueOf("0" + ":" + (mins > 0 ? "0" + mins : "0") + " AM");
        } else {
            string = String.valueOf("0" + ":" + (mins > 0 ? mins : "0") + " AM");
        }
    }
    return string;
}

0
function timeToSecond($time){
    $time_parts=explode(":",$time);
    $seconds= ($time_parts[0]*86400) + ($time_parts[1]*3600) + ($time_parts[2]*60) + $time_parts[3] ; 
    return $seconds;
}

function secondToTime($time){
    $seconds  = $time % 60;
    $seconds<10 ? "0".$seconds : $seconds;
    if($seconds<10) {
        $seconds="0".$seconds;
    }
    $time     = ($time - $seconds) / 60;
    $minutes  = $time % 60;
    if($minutes<10) {
        $minutes="0".$minutes;
    }
    $time     = ($time - $minutes) / 60;
    $hours    = $time % 24;
    if($hours<10) {
        $hours="0".$hours;
    }
    $days     = ($time - $hours) / 24;
    if($days<10) {
        $days="0".$days;
    }

    $time_arr = array($days,$hours,$minutes,$seconds);
    return implode(":",$time_arr);
}

0

ভাল আমার এমন কিছু দরকার ছিল যা কয়েক সেকেন্ডকে কয়েক মিনিট এবং সেকেন্ডের মধ্যে হ্রাস করতে পারে, তবে 24 ঘন্টা ছাড়িয়ে যাবে এবং আরও কিছুদিনের মধ্যে হ্রাস পাবে না।

এখানে একটি সাধারণ ফাংশন যা কাজ করে। আপনি সম্ভবত এটি উন্নতি করতে পারেন ... তবে এটি এখানে:

function formatSeconds($seconds)
{
    $hours = 0;$minutes = 0;
    while($seconds >= 60){$seconds -= 60;$minutes++;}
    while($minutes >= 60){$minutes -=60;$hours++;}
    $hours = str_pad($hours, 2, '0', STR_PAD_LEFT);
    $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
    $seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);
    return $hours.":".$minutes.":".$seconds;
}

0
$given = 685;

 /*
 * In case $given == 86400, gmdate( "H" ) will convert it into '00' i.e. midnight.
 * We would need to take this into consideration, and so we will first
 * check the ratio of the seconds i.e. $given:$number_of_sec_in_a_day
 * and then after multiplying it by the number of hours in a day (24), we
 * will just use "floor" to get the number of hours as the rest would
 * be the minutes and seconds anyways.
 *
 * We can also have minutes and seconds combined in one variable,
 * e.g. $min_sec = gmdate( "i:s", $given );
 * But for versatility sake, I have taken them separately.
 */

$hours = ( $given > 86399 ) ? '0'.floor( ( $given / 86400 ) * 24 )-gmdate( "H", $given ) : gmdate("H", $given );

$min = gmdate( "i", $given );

$sec = gmdate( "s", $given );

echo $formatted_string = $hours.':'.$min.':'.$sec;

এটিকে কোনও ফাংশনে রূপান্তর করতে:

function getHoursFormat( $given ){

 $hours = ( $given > 86399 ) ? '0'.floor( ( $given / 86400 ) * 24 )-gmdate( "H", $given ) : gmdate("H", $given );

 $min = gmdate( "i", $given );

 $sec = gmdate( "s", $given );

 $formatted_string = $hours.':'.$min.':'.$sec;

 return $formatted_string;

}

0

আপনার যদি জাভাস্ক্রিপ্টে এটি করার দরকার হয় তবে আপনি এখানে উত্তর হিসাবে কোডের এক লাইনে এটি করতে পারেন এখানে জাভাস্ক্রিপ্ট সহ সেকেন্ডে এইচএইচ-এমএম-এসএসে রূপান্তর করুন । আপনি রূপান্তর করতে চান তা দিয়ে SECONDS প্রতিস্থাপন করুন ।

var time = new Date(SECONDS * 1000).toISOString().substr(11, 8);

0

আপনি যদি ইউটিউব ইত্যাদির মতো কোনও অডিও / ভিডিও সময়কাল স্ট্রিং তৈরি করতে চান তবে আপনি এটি করতে পারেন:

($seconds >= 60) ? ltrim(gmdate("H:i:s", $seconds), ":0") : gmdate("0:s", $seconds)

এর মতো স্ট্রিংগুলি ফিরে আসবে:

55.55 => '0:55'
100   => '1:40'

সম্ভবত সময়> = 24 ঘন্টা ভাল কাজ করবে না।


0

এটি করার একটি দুর্দান্ত উপায়:

function time_converter($sec_time, $format='h:m:s'){
      $hour = intval($sec_time / 3600) >= 10 ? intval($sec_time / 3600) : '0'.intval($sec_time / 3600);
      $minute = intval(($sec_time % 3600) / 60) >= 10 ? intval(($sec_time % 3600) / 60) : '0'.intval(($sec_time % 3600) / 60);
      $sec = intval(($sec_time % 3600) % 60)  >= 10 ? intval(($sec_time % 3600) % 60) : '0'.intval(($sec_time % 3600) % 60);

      $format = str_replace('h', $hour, $format);
      $format = str_replace('m', $minute, $format);
      $format = str_replace('s', $sec, $format);

      return $format;
    }

-1

এই ক্ষেত্রে সুন্দরভাবে ফর্ম্যাটেড ফিরিয়ে দেওয়ার জন্য অন্য কেউ যদি সাধারণ কোনও ফাংশন সন্ধান করতে চান (তবে আমি জানি যে এটি ওপি যে ফর্ম্যাটটির অনুরোধ করেছিল তা নয়), আমি কেবল এটিই নিয়ে এসেছি। এই ভিত্তিতে কোডটির জন্য @ মুঘলকে ধন্যবাদ জানাই।

function format_timer_result($time_in_seconds){
    $time_in_seconds = ceil($time_in_seconds);

    // Check for 0
    if ($time_in_seconds == 0){
        return 'Less than a second';
    }

    // Days
    $days = floor($time_in_seconds / (60 * 60 * 24));
    $time_in_seconds -= $days * (60 * 60 * 24);

    // Hours
    $hours = floor($time_in_seconds / (60 * 60));
    $time_in_seconds -= $hours * (60 * 60);

    // Minutes
    $minutes = floor($time_in_seconds / 60);
    $time_in_seconds -= $minutes * 60;

    // Seconds
    $seconds = floor($time_in_seconds);

    // Format for return
    $return = '';
    if ($days > 0){
        $return .= $days . ' day' . ($days == 1 ? '' : 's'). ' ';
    }
    if ($hours > 0){
        $return .= $hours . ' hour' . ($hours == 1 ? '' : 's') . ' ';
    }
    if ($minutes > 0){
        $return .= $minutes . ' minute' . ($minutes == 1 ? '' : 's') . ' ';
    }
    if ($seconds > 0){
        $return .= $seconds . ' second' . ($seconds == 1 ? '' : 's') . ' ';
    }
    $return = trim($return);

    return $return;
}

-1

ভবিষ্যতে যার যারাই এটি খুঁজছেন, এটি প্রাথমিক পোস্টারটির জন্য অনুরোধ করা ফর্ম্যাটটি দেয়।

$init = 685;
$hours = floor($init / 3600);
$hrlength=strlen($hours);
if ($hrlength==1) {$hrs="0".$hours;}
else {$hrs=$hours;} 

$minutes = floor(($init / 60) % 60);
$minlength=strlen($minutes);
if ($minlength==1) {$mins="0".$minutes;}
else {$mins=$minutes;} 

$seconds = $init % 60;
$seclength=strlen($seconds);
if ($seclength==1) {$secs="0".$seconds;}
else {$secs=$seconds;} 

echo "$hrs:$mins:$secs";

-3
<?php
$time=3*3600 + 30*60;


$year=floor($time/(365*24*60*60));
$time-=$year*(365*24*60*60);

$month=floor($time/(30*24*60*60));
$time-=$month*(30*24*60*60);

$day=floor($time/(24*60*60));
$time-=$day*(24*60*60);

$hour=floor($time/(60*60));
$time-=$hour*(60*60);

$minute=floor($time/(60));
$time-=$minute*(60);

$second=floor($time);
$time-=$second;
if($year>0){
    echo $year." year, ";
}
if($month>0){
    echo $month." month, ";
}
if($day>0){
    echo $day." day, ";
}
if($hour>0){
    echo $hour." hour, ";
}
if($minute>0){
    echo $minute." minute, ";
}
if($second>0){
    echo $second." second, ";
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.