私が収集したものから、コロンで区切られた 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);
?>