我住在丹麦 - 但正在为美国(华盛顿州)的朋友建立一个页面。该页面托管在丹麦的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 = 新的日期时间($_POST[日期]"。'.$_POST[时间], 新的日期时区("UTC"));
echo $date->getTimestamp();