【发布时间】:2020-12-07 18:14:12
【问题描述】:
我正在尝试使用 PHP 从 MySQL 数据库中获取数据,除了日期之外一切正常。日期已经晚了一天,我只是不知道如何解决它。我在我的 CentOS 8 服务器 PC 上使用 PHPMyAdmin 和 Apache。
数据库上的日期列类型为:datetime,默认值为:current_timestamp()。
我正在使用 PHP 将值插入到我的数据库中,但我希望数据库能够自行排序的日期列除外。
我知道我可以尝试更改 MySQL 上的时区(由于查询似乎无法识别欧洲/赫尔辛基时区,我无法找到使其工作的方法)或者我可以在 PHP 端更改它在它显示在网站上之前,但那里也没有运气。
用于获取日期的代码:(+ 一些不同的时间回声)
date_default_timezone_set('Europe/Helsinki');
while ($rows = $result->fetch_assoc()) {
$currdate = date('Y-m-d H:i:s', time());
}
echo $currdate;
$date = date('Y-m-d H:i:s');
echo $date;
$newdate = new DateTime($currdate, new DateTimeZone('Europe/Helsinki'));
echo $newdate->format('Y-m-d H:i:s');
$timestamp = date('H:i d.m.Y', strtotime($rows['date']));
它们都打印出相同的日期和时间
2020-12-06 18:41:53
当前时间(在撰写本文时)应该是 2020-12-07 20:04:00,这比一天晚了。而且当我尝试其他时区(例如欧洲/巴黎)时,时间根本不会改变。
数据库当前有一些示例数据,因此如果需要创建具有不同默认值的新表,我可以毫无问题地删除所有记录。或者我可以尝试从 PHP 脚本手动插入日期值,但问题仍然存在,因为 PHP 的时区全部错误。
我不知道问题出在哪里。我对这些东西有些陌生,但我已经查过了,并尝试了许多不同的方法,我从这里和其他网站找到了,但没有运气。有什么想法吗?
【问题讨论】:
标签: php mysql datetime timezone