<;的行为;?php回显日期(“H:i:s”,0)&燃气轮机;
我用过:<;的行为;?php回显日期(“H:i:s”,0)&燃气轮机;,php,date,datediff,Php,Date,Datediff,我用过: <?php echo date("H:i:s", $var_time_diff); ?> 显示01:00:00而不是00:00:00 所以我们有 $date_a = "18:15:04"; $date_b = "23:15:04"; $diff = strtotime($date_b) - strtotime($date_a); 目前一切正常,$diff为5小时,但如果我们这样显示日期: echo date("H:i:s", $diff); 它将是“06:00:00
<?php
echo date("H:i:s", $var_time_diff);
?>
显示01:00:00
而不是00:00:00
所以我们有
$date_a = "18:15:04";
$date_b = "23:15:04";
$diff = strtotime($date_b) - strtotime($date_a);
目前一切正常,$diff
为5小时,但如果我们这样显示日期:
echo date("H:i:s", $diff);
它将是“06:00:00”
那么我的php配置有什么问题吗?或者这是php函数date的正常行为?函数使用当前时区。如果要忽略配置的时区,请使用
date\u default\u timezone\u set()。不过,我将按照这个问题进行更深入的解释
$date_a = "18:15:04";
$date_b = "23:15:04";
$diff = strtotime($date_b) - strtotime($date_a);
echo date("H:i:s", mktime(0,0,$diff));
编辑:啊,所以它会调整到您当前的时区,mktime
,所以效果是否定的。您所在的时区不是UTC。尝试:
<?php
date_default_timezone_set('UTC');
echo date("H:i:s",0) . "\n";
使用mktime和min 1表示小时@$diff
<?php
date_default_timezone_set('UTC');
echo date("H:i:s",0) . "\n";