php的时差给了我奇怪的小时数


Time difference in php gives me strange number of hours

代码为

   $start_time= time();
   echo "<BR><BR>";
   echo "start: ".date("G:i:s",$start_time);echo "<BR>";
   echo "now: ".date("G:i:s",time());echo "<BR>";
   echo "difference: ".date("G:i:s",time()-$start_time);echo "<BR>";
   echo "<BR><BR>";
   echo time()-$start_time;
   echo "<BR><BR>";

,输出为

start: 12:03:41
now: 12:06:04
difference: 10:02:23

143

知道为什么小时数不是0吗?

您是否尝试过显式地为脚本设置时区?

date_default_timezone_set('UTC');

我认为在计算日期差异时应该使用unix时间戳。

见下文

$start_time= date("U", time());
sleep(5); //stops execution for 5 seconds
$endtime = date("U",time());
echo date("G:i:s",$endtime - $start_time); //Outputs 0:00:05

或者类似的东西来表示实际的日期/时间差异

 $start_time= date("U", strtotime("11/11/11 12:53"));
 $endtime = date("U",strtotime("11/11/11 12:59"));
 echo date("G:i:s",$endtime - $start_time);

输出0:06:00 6分钟

差值应该是time() - $start_time,表示运行脚本所需的秒数。如果将其传递给date,那么它将给出Unix Epoch之后143秒的日期。设置日期格式为"Y/m/d G:i:s",以便查看具体情况。