-1

現在、PHP を少し使用して、特定の日付までの残り日数、時間、分、秒を出力しています。それはうまく機能しますが、今のところ、次のような出力になります: 14:5:33:36

理想的には、10 未満の場合は、5 ではなく 05 を出力したいと思います。これは PHP ではかなり単純でなければならないことはわかっていますが、フロント エンド開発者としては... 私はこれに頭を悩ませることはできません。 . 以下は私が現在使用しているコードです:

<?
    $rem = strtotime('2013-02-01 14:00:00') - time();
    $day = floor($rem / 86400);
    $hr  = floor(($rem % 86400) / 3600);
    $min = floor(($rem % 3600) / 60);
    $sec = ($rem % 60);
    if($day)
        echo "$day:";
    if($hr)
        echo "$hr:";
    if($min)
        echo "$min:";
    if($sec)
        echo "$sec";
?>

これはどのように達成できますか?

4

3 に答える 3

4

フラグstr_padで使用できます。STR_PAD_LEFT

$num = 5;
echo str_pad($num, 2, "0", STR_PAD_LEFT);
于 2013-01-18T16:41:17.763 に答える
0

時間操作にはDateTimeクラスを使用します。

$future = new DateTime('2013-01-20 14:00:00');
$now = new DateTime('now');
echo $future->diff($now)->format('%D:%H:%I:%S'); # outputs 01:20:08:12

間隔の書式設定については、DateInterval::format をご覧ください

于 2013-01-18T16:53:46.870 に答える
0

以下のコードを使用します。

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo "<pre>";
print_r($interval);
echo $interval->format("%D");

format() を使用すると、出力をフォーマットできます。

出力は次のようになります。

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 2
    [h] => 0
    [i] => 0
    [s] => 0
    [invert] => 0
    [days] => 2
)
02
于 2013-01-18T16:47:22.400 に答える