dtkyayvldeaqhl7151 2014-02-13 18:43
浏览 73
已采纳

DateTime输入在PHP中的时区之间转换

I have an input box that grabs local time

date_default_timezone_set('America/Los_Angeles');
echo "<input type='datetime-local' name='fromDate' class='dates'>";

When I enter 12-31-2014 10:00:00 PM in the input

echo $_POST['fromDate'];

Response: 2014-12-31T22:00:00

$test = new DateTime($_POST['fromDate']);
echo $test;

I get 2014-12-31T22:00:00 America/Los_Angeles

Then when I convert

$from_dateGMT  = new DateTime($_POST['fromDate'], new DateTimeZone('Europe/Paris'));
$from_date = $from_dateGMT->format('Y-m-d\TH:i:s');
echo $from_date;

I get 2014-12-31T22:12:00 UTC, which is the same time listed above and should be adding 8 hours.

What am I doing wrong?

I don't deal with dates/times in PHP ever, so this is a learning experience for me.

  • 写回答

1条回答 默认 最新

  • dstnlhhv791576 2014-02-13 21:50
    关注

    Perhaps this will work

    $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');
    

    At least that is how it is done in php manual here: http://us2.php.net/manual/en/datetime.settimezone.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)