2016-10-27 2 views
1

私は次の式を持っていますが、何らかの理由で5分か50分かどうか分からないので、ゼロを表示しないか、ゼロを落とします。だから私が "$ h:$ m"をエコーするとき。たとえば、7:5と表示されます。何か案は?PHP Unix時間ゼロがありません

$now = time(); 
    $diff = $now - $phpdate; 
    $w = $diff/86400/7; 
    $d = $diff/86400 % 7; 
    $h = $diff/3600 % 24; 
    $m = $diff/60 % 60; 
    $s = $diff % 60; 

    $PD = "$h:$m"; 
+0

'sprintf()'または 'date()'を使用してください。 – AbraCadaver

+0

datetimeの差分を計算する場合は、http://php.net/manual/en/datetime.diff.phpと他の多くのものを使用できます。 – Deep

+0

時刻はデータベースにunix時刻として保存されます。日付時刻。 – Jayce

答えて

0

あなたはstr_padを使用することができ、それらは一桁である場合、時間と分の前に0文字列を追加することができます。これはあなた(y)を助ける

$now = time(); 
$diff = $now - 30939007; 
$w = $diff/86400/7; 
$d = $diff/86400 % 7; 
$h = $diff/3600 % 24; 
$m = $diff/60 % 60; 
$s = $diff % 60; 

// add 0 to left if string is single chars 
if (strlen($h) == 1) { 
    $h = str_pad($h, '2', '0', STR_PAD_LEFT); 
} 
if (strlen($m) == 1) { 
$m = str_pad($m, '2', '0', STR_PAD_LEFT); 
} 

$PD = "$h:$m"; 
echo $PD; 

Check str_pad documentation

ホープ - あなたはこのような何かを行うことができます。

0

あなたが必要なのは、単純なパディングであるため、他のオーバーヘッドを避けるために、あなたは、パッドもちろんの「0」を持つ2つの(パディングの長さを必要とするものをでしたが、文字列が既に文字に2つのない場合にのみ長さ):

$m = str_pad($m, '2', '0'); 
$s = str_pad($s, '2', '0'); 
関連する問題