为什么以下代码的输出为负?
代码:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
以上代码的输出为-17295
谢谢!
答案 0 :(得分:1)
因为你从较小的东西(strtotime("2013-04-10 21:31:30")
)中减去更大的东西($date
)
但也可能是因为你没有设置时区,或者在PHP中没有正确设置,如果$now
真的大于$date
答案 1 :(得分:1)
因为$ date的时间戳是将来的,所以$ now现在小于它,因此产生负数
答案 2 :(得分:1)
我认为你得到的答案是2013-04-10 21:31:30
,你指定给$date
PHP变量的时间是印度标准时间。
您的服务器时区可能不是亚洲/加尔各答。因此,您需要将脚本中所有日期/时间功能使用的默认时区设置为 Asia / Calcutta 使用 date_default_timezone_set 功能。
这应该完美无缺: 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;
?>
答案 3 :(得分:0)
如果我们从1970年1月1日开始1365612708
秒,今晚21:31:30从1970年1月1日开始1365625890
秒,此时您从指定时间开始减去1365612708
今晚(1365625890
)你将来-13182
秒(即3.6小时(又名3小时30分钟(ish))