繁体   English   中英

时区正确,但时间不正确-PHP MySQL

[英]Timezone is correct but Time is not - PHP MySQL

我在制作一个小的Twitter克隆只是为了学习,但遇到一个问题,在该问题之前之后,允许用户选择他们所在的时区,然后显示他们发某件事的时间是错误的。

这是我的代码片段:

/* current date/time whenever they send a tweet */

    $time = date('Y-m-d H:i:s');

/* Insert into db as `time` */


/* Time retrieved as $value['time'] & users timezone as $_SESSION['timezone'] */
/* Convert to users timezone */

    $users_timezone = new DateTimeZone($_SESSION['timezone']);
    $date = new DateTime($value['time']);
    $date->setTimeZone($users_timezone);
    $new_date = $date->format('M j, o g:i a e');
    echo $new_date;

当前在洛杉矶地区现在是11:32 am,但转换后显示为6:26 pm

我的默认位置是柏林,当前时间是晚上8:33,但转换前显示的是凌晨1点

谁能给我对此的任何见解? 第一次这样做。

检查系统时间

请通过ssh通过运行date检查服务器的当前系统时间。

我相信php从系统获取日期,因此,如果您的系统时间不正确,则您的php时间也将不正确。

检查$value['time']

您正在使用DataTime类中的Construct方法。 这是该方法的文档。

http://www.php.net/manual/en/datetime.construct.php

确保$value['time']的格式可接受。 轻松实现此目的的方法是使用strtotime函数。 这将根据$value['time']制作一个unix时间戳,并且可能满足DateTime类的构造方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM