我在虚拟机中安装了ubuntu,安装了appache并使用iframe在web上工作,但不知何故我的时间戳错了。
首先,ubuntu和主机操作系统同时在同一时区,但后来我将主机的时区更改为不到1小时的不同区域
所以现在在virtualbox ubuntu示例19:00(webhost)和主机18:00(父os),但如果我使用time()并转换为日期我得到18:00什么不是服务器端。 ...
这总是0 echo“STimeDiff = parseInt('”。time()。“',10)-parseInt((Date.now()/ 1000 | 0));
如果我将time()转换为date => 2017-05-19 20:24 如果我使用日期(“Y-m-d H:i:s”)=> 2017-05-19 21:24
为什么会出现这种差异,如何解决?
答案 0 :(得分:1)
文档应该包含此信息。函数time()始终返回与时区无关的时间戳(= UTC)。
<?php
date_default_timezone_set("UTC");
echo "UTC:".time();
echo "<br>";
date_default_timezone_set("Europe/Helsinki");
echo "Europe/Helsinki:".time();
echo "<br>";
?>
输出(注意两者都相同):
UTC:1495738754<br>
Europe/Helsinki:1495738754<br>
作为字符串的本地时间可以通过mktime()获取strftime()和本地时间戳(如果需要)。“
我发现您只想向用户显示您的服务器日期/时间&#39;客户,要做到这一点,只需使用date
而不是时间。
<?php
date_default_timezone_set("UTC");
echo "UTC:".date('Y-m-d H:i:s');
echo "<br>\n";
date_default_timezone_set("Europe/Helsinki");
echo "Europe/Helsinki:".date('Y-m-d H:i:s');
echo "<br>\n";
?>
输出:
UTC:2017-05-25 18:55:02<br>
Europe/Helsinki:2017-05-25 21:55:02<br>