在mysql查询中更改小时间隔

时间:2013-03-26 21:54:13

标签: php mysql

所以我的页面上的日期格式显示了提前6小时的时间。 如何更改它以显示正确的时间 这是我的查询

   $query = "SELECT firstName,lastName, post,date_format(postDate,'%M,%d,%Y at %H:%i') as     mydatefield
      FROM users INNER JOIN posts ON userId = empl_Id
      ORDER BY postDate";

这会将值插入表

   $query = "INSERT INTO posts(postId,empl_Id,post,postDate)
        VALUES('','$empId','$idea',NOW())";
    $result = mysqli_query($db, $query);

2 个答案:

答案 0 :(得分:1)

据推测,您将以UTC格式存储时间,并且距离UTC有6个小时。

请勿更改您的查询。时区演示是应用程序View逻辑的关注点,而不是控制器。

每次在页面中显示日期/时间时,只需将TZ偏移量添加到UTC值即可。您可以在此处查看示例:http://www.php.net/manual/en/book.datetime.php

答案 1 :(得分:0)

正如this question中所述,您可以按照here所述的方式执行此操作。

或者您可以选择the answer below that状态,这样做:

您可以使用DateTime :: setTimezone()。如果您的UTC日期是UNIX时间戳,您可以使用以下代码:

$date = new DateTime();
$date->setTimezone(new DateTimeZone('UTC'));
$date->setTimestamp(1297869844); // this should be the 'current' then 
$date->setTimezone(new DateTimeZone('Europe/Paris'));

echo $date->format('Y-m-d H:i:s');
// Will print 2011-02-16 16:24:04

然后使用它将值插入数据库。 更改表示(在所有unix时间戳之后,你甚至可能想要存储,只是将其转换为人类形式作为一种说话方式)