为什么下面的代码的输出是负数?错误的时差
代码:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
以上代码的输出是-17295
谢谢!
为什么下面的代码的输出是负数?错误的时差
代码:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
以上代码的输出是-17295
谢谢!
我想你会得到否定答案,因为时间2013-04-10 21:31:30
,你正在分配给$date
PHP变量是印度标准时间。
您的服务器的时区可能不亚洲/加尔各答。所以你需要设置使用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;
?>
非常感谢... – 2013-04-10 17:03:42
@Harikrishnan :) :) – 2013-04-10 17:04:35
因为你减去一些小($date
)
但是,这也可能是因为你还没有设置时区或者没有在PHP中正确设置,如果$now
真的大于更大的东西(strtotime("2013-04-10 21:31:30")
) $date
谢谢,这将是理由。 – 2013-04-10 16:53:47
因为$日期的时间戳是在未来,因此$现在不到它,从而产生负数
如果我们1365612708
秒从1970年1月1日,并在今晚21点三十一分30秒是从1970年1月1日秒当您从指定的时间,现在(1365612708
)减去今晚(1365625890
)你-13182
秒(其中3.6小时(又名3小时30分钟(在未来ISH)))
是不是'$日期> $ now'? – Zbigniew 2013-04-10 16:47:00