我在我的php脚本中使用时间戳来处理小时,分钟和秒的时间。时间戳也记录日期,但我只使用时间00:00:00
。
例如我在时间上的差异
$start = strtotime("12:00:00");
$end = strtotime("20:00:00");
$difference = $end - $start;
或划分时间
$divide = $difference/3;
我应该继续为这些操作使用时间戳吗?还是在php中有特定于时间的函数?
答案 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";