2

秒をMM:DD:HH:MM:SS形式に変換するのに助けが必要です。

私はここにこのコードを持っています:

<?php
    // Convert seconds into months, days, hours, minutes, and seconds.
    function secondsToTime($ss) {
    $s = $ss%60;
    $m = floor(($ss%3600)/60);
    $h = floor(($ss%86400)/3600);
    $d = floor(($ss%2592000)/86400);
    $M = floor($ss/2592000);

    return "$M months, $d days, $h hours, $m minutes, $s seconds";
    }
?>

の例を出力します

0か月、1日、3時間、46分、39秒

私はそれが次のようなものになりたいです

00:01:03:46:39

どうやってやるの?

4

3 に答える 3

4

私が収集したものから、コロンで区切られた 2 桁の値を含む文字列を返すことに興味があるようです。位置を変更する必要がないと仮定すると、次のようなことができます。

<?php
// Prefix single-digit values with a zero.
function ensure2Digit($number) {
    if($number < 10) {
        $number = '0' . $number;
    }
    return $number;
}

// Convert seconds into months, days, hours, minutes, and seconds.
function secondsToTime($ss) {
    $s = ensure2Digit($ss%60);
    $m = ensure2Digit(floor(($ss%3600)/60));
    $h = ensure2Digit(floor(($ss%86400)/3600));
    $d = ensure2Digit(floor(($ss%2592000)/86400));
    $M = ensure2Digit(floor($ss/2592000));

    return "$M:$d:$h:$m:$s";
}

または、管理する機能がもう 1 つあるという考えが気に入らない場合は、次の方法が適している可能性があります。

<?php
// Convert seconds into months, days, hours, minutes, and seconds.
function secondsToTime($ss) {
    $s = $ss%60;
    $m = floor(($ss%3600)/60);
    $h = floor(($ss%86400)/3600);
    $d = floor(($ss%2592000)/86400);
    $M = floor($ss/2592000);

    // Ensure all values are 2 digits, prepending zero if necessary.
    $s = $s < 10 ? '0' . $s : $s;
    $m = $m < 10 ? '0' . $m : $m;
    $h = $h < 10 ? '0' . $h : $h;
    $d = $d < 10 ? '0' . $d : $d;
    $M = $M < 10 ? '0' . $M : $M;

    return "$M:$d:$h:$m:$s";
}

そして、関数を呼び出します (使用する方法は何でも):

<?php

$ss = 123456;
print secondsToTime($ss);

?>
于 2013-02-06T04:23:09.063 に答える
2

簡単な方法:

print date('m:d:h:i:s', $ss); // $ss = seconds

ただし、これは、1970 年からカウントを開始するため、私の知る限り、希望どおりに年を処理することはできません。しかし、明らかに年を表示する必要はありません。

(s)printfまたは、現在の文字列を次のようにフォーマットすることもできます。

printf('%02d:%02d:%02d:%02d:%02d', $M, $d, $h, $m, $s);
于 2013-02-06T04:35:56.313 に答える
0

すべての変数が与えられたら、PHPで文字列を作成するだけです。

$str = "$M:$d:$h:$m:$s"

ただし、このコードは先行ゼロを処理しません。

于 2013-02-06T04:18:33.333 に答える