>我有一个获取本地时间的输入框
date_default_timezone_set('America/Los_Angeles');
echo "<input type='datetime-local' name='fromDate' class='dates'>";
当我在输入中输入12-31-2014 10:00:00 PM
时
echo $_POST['fromDate'];
响应:2014-12-31T22:00:00
$test = new DateTime($_POST['fromDate']);
echo $test;
我得到2014-12-31T22:00:00 America/Los_Angeles
然后当我转换时
$from_dateGMT = new DateTime($_POST['fromDate'], new DateTimeZone('Europe/Paris'));
$from_date = $from_dateGMT->format('Y-m-dTH:i:s');
echo $from_date;
我得到2014-12-31T22:12:00 UTC
,这与上面列出的时间相同,应该增加 8 小时。
我做错了什么?
我从不处理PHP中的日期/时间,所以这对我来说是一种学习经历。
也许这会起作用
$test = new DateTime($_POST['fromDate'], new DateTimeZone('America/Los_Angeles'));
$test->setTimezone(new DateTimeZone('Europe/Paris'));
echo $test->format('Y-m-dTH:i:s');
至少在 php 手册中是这样完成的:http://us2.php.net/manual/en/datetime.settimezone.php