-1

我现在正在使用一些 PHP 来输出距离特定日期还有多少天、小时、分钟和秒。它工作得很好,但截至目前,它会输出如下内容:14:5:33:36

理想情况下,如果它小于 10,我希望它输出 05 而不仅仅是 5。我知道这在 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_padSTR_PAD_LEFT标志一起使用。

$num = 5;
echo str_pad($num, 2, "0", STR_PAD_LEFT);
于 2013-01-18T16:41:17.763 回答
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 回答
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 回答