为什么下面代码的输出是负数?
代码:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
上面代码的输出是-17295
谢谢!
因为您strtotime("2013-04-10 21:31:30")
从较小的 ( ) 中减去较大的 ( $date
)
但这也可能是因为你没有设置时区或者在 PHP 中设置不正确,if$now
真的大于$date
因为 $date 的时间戳在未来,因此 $now 小于它,因此产生一个负数
我认为你得到了否定的答案2013-04-10 21:31:30
,因为你分配给$date
PHP 变量的时间是印度标准时间。
您的服务器时区可能不是 Asia/Calcutta。因此,您需要使用date_default_timezone_set函数将脚本中所有日期/时间函数使用的默认时区设置为Asia/Calcutta。
这应该可以完美运行:IDEONE DEMO
<?php
$date=strtotime("2013-04-10 21:31:30");
if(function_exists('date_default_timezone_set'))
date_default_timezone_set("Asia/Calcutta");
$now=time();
$diff=$now-$date;
echo $diff;
?>
如果我们是1365612708
1970 年 1 月 1 日的秒数,今晚 21:31:30 是 1970 年 1 月 1 日的秒数,当您从今晚的指定时间 ( ) 中1365625890
减去现在 ( ) 时,您将得到秒数(即 3.6 小时(也就是 3 小时 30 分钟) ish))将来)1365612708
1365625890
-13182