Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的时差给了我奇怪的小时数_Php_Time_Datetime Format - Fatal编程技术网

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

php中的时差给了我奇怪的小时数,php,time,datetime-format,Php,Time,Datetime Format,我的代码是 $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&

我的代码是

   $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>";

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

我认为在计算日期差异时应该使用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分钟

我认为在计算日期差异时应该使用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\u time,以给出运行脚本所需的秒数。如果您将它传递到date,那么它将给出Unix纪元后143秒的日期。将日期格式设置为“Y/m/d G:i:s”,以准确查看那里发生了什么。

不同之处应该是time()-$start\u time,以给出运行脚本所需的秒数。如果您将它传递到date,那么它将给出Unix纪元后143秒的日期。将日期格式设置为“Y/m/d G:i:s”,以准确查看那里发生了什么。

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

date_default_timezone_set('UTC');

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

date_default_timezone_set('UTC');

你能解释一下为什么这样有帮助吗?:-)我不确定,但我猜date()会转换为localtime,time()会以UTC返回时间-PHP文档不清楚发生了什么。你能解释一下为什么会有帮助吗?:-)我不确定,但我猜date()转换为localtime,time()返回UTC时间-PHP文档不清楚发生了什么。可能因为时区不同,它对我不起作用?我的解决方案是添加
date\u default\u timezone\u set('UTC')到我当前的代码。可能因为时区不同,它对我不起作用?我的解决方案是添加
date\u default\u timezone\u set('UTC')到我的当前代码。