我有一个抓取当地时间的输入框
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-d\TH:i:s');
echo $from_date;
我得到2014-12-31T22:12:00 UTC
,这与上面列出的时间相同,应该增加8小时。
我做错了什么?
我不会在PHP中处理日期/时间,所以这对我来说是一次学习经历。
答案 0 :(得分:1)
也许这会起作用
$test = new DateTime($_POST['fromDate'], new DateTimeZone('America/Los_Angeles'));
$test->setTimezone(new DateTimeZone('Europe/Paris'));
echo $test->format('Y-m-d\TH:i:s');
至少这是在php手册中的完成方式:{{3}}