所以我的页面上的日期格式显示了提前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);
答案 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时间戳之后,你甚至可能想要存储,只是将其转换为人类形式作为一种说话方式)