我住在丹麦 - 但我正在为美国(华盛顿州)的朋友设置页面。该页面位于丹麦的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个小时?这是为什么?
我想我可以删除此特定任务的时区设置 - 但是 我想明白为什么。我正在设置时区,因为我还需要根据用户的实际时间保存一些时间戳(在华盛顿州 - 而不是丹麦)。
你能帮忙吗?
答案 0 :(得分:0)
strtotime假设您正在传递UTC日期,因此它将其转换为服务器时区,您可以执行以下操作:
$ date = new DateTime($ _ POST [date]。''。$ _ POST [time],new DateTimeZone(" UTC"));
echo $ date-> getTimestamp();