php仅与时间合作

时间:2012-06-07 04:01:02

标签: php date time

我在我的php脚本中使用时间戳来处理小时,分钟和秒的时间。时间戳也记录日期,但我只使用时间00:00:00

例如我在时间上的差异

$start = strtotime("12:00:00");
$end = strtotime("20:00:00");

$difference = $end - $start;

或划分时间

$divide = $difference/3;

我应该继续为这些操作使用时间戳吗?还是在php中有特定于时间的函数?

5 个答案:

答案 0 :(得分:8)

如何使用DateTime

执行此操作的示例
$d1 = new DateTime('11:00:00');
$d2 = new DateTime('04:00:00');

$diff = $d1->diff($d2);

echo $diff->h, " hours ", $diff->i, " minutes\n";

输出:

7 hours 0 minutes

答案 1 :(得分:1)

据我所知,php中没有时间特定的标准功能,你做的很好。但是,自己进行计算相当容易。

$newHour = $hour1-$hour2;
$newMinute = $minute1 - $minute2;
if($newMinute < 0 ){
    $newMinute +=60;
    $newHour--;
}
$newSecond = $second1 - $second2;
if($newSecond < 0){
    $newMinute --;
    $newSecond +=60;

}

假设第一个日期晚于第二个日期,这应该可以正常工作

答案 2 :(得分:1)

您可以使用mktime。 你可以这样称呼它:

$time1 = mktime(12,24,60);   // hour,minute,second
$time2 = mktime(16,24,60);
echo ($time2 - $time1);

结果是秒,例如时间() strtotime()

答案 3 :(得分:1)

如果时间戳适合您,请继续使用它们。它们确实没有任何问题(除了2038年的unix版本的Y2K,当时间戳不再适合32位int)。 PHP或者为您提供了另一种使用DateTime

进行时间计算的方法

答案 4 :(得分:0)

您应该使用 DateTime 类,它可以计算两个时间点之间的差异。

$d1 = new DateTime('11:00:00');
$d2 = new DateTime('04:00:00');

$diff = $d1->diff($d2);

echo $diff->h, " hours ", $diff->i, " minutes\n";