我住在丹麦 - 但正在为美国(华盛顿州)的 friend 设置一个页面。该页面托管在丹麦的 Surftown。
我知道有 9 个小时的时差,所以我设置:
date_default_timezone_set('America/Los_Angeles');
但是对于时区/date()
和 strtotime()
我显然不太明白,因为:
我试图通过文本输入将特定的日期和时间保存到数据库中。
假设 $_POST[date]
输入是:'01/29/2015' 和 $_POST[time]
输入是:'02:00 PM' .
然后我使用以下方法创建图章:
strtotime($_POST[date].' '.$_POST[time]);
但是当我尝试输出这个时,我得到了正确的日期——但是时间增加了 9 小时?这是为什么?
我想我可以删除这个特定任务的时区设置 - 但是 我想明白为什么。我正在设置时区,因为我还需要根据用户的实际时间(在华盛顿州 - 而不是丹麦)保存一些时间戳。
你能帮忙吗?
最佳答案
strtotime 假定您传递的是 UTC 日期,因此它将其转换为服务器时区,您可以执行以下操作:
$date = new DateTime($_POST[日期].' '.$_POST[时间], new DateTimeZone("UTC"));
echo $date->getTimestamp();
关于php - php时区设置的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226458/