我正在一个基于PHP的项目上,我有一个问题,我购买了一个主机在另一个国家的主机,并且我在巴基斯坦,当我从PHPMyAdmin在数据库表中输入数据时输入的是该国家的日期比我们晚11个小时,这就是为什么我的插入查询和更新查询未设置PHP时区,但未设置服务器时区的原因。
php_value date.timezone 'Asia/Karachi';
我使用这是我的htaccess文件,也使用
date.timezone = "Asia/Karachi"
在php ini文件中
答案 0 :(得分:1)
(想发表评论)
如果您编写一个具有用户特定时区的网站,则在数据库站点上管理时区会有些复杂。我更喜欢这种解决方案:
对于数据库存储,我使用:
UPDATE table SET start_time = UNIX_TIMESTAMP();
结果要么作为本地整数检索,要么转换为UTC / GMT时间:
SELECT unix_time, UNIX_TIMESTAMP(db_date)
您可以使用以下方法进行测试:
SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(now());
在PHP中,您现在可以通过添加和减去来简单地进行快速时间计算。它在用户界面上打印时间,设置时区(可能由数据库查询评估),并使用date()或strftime()或任何date + time类。
答案 1 :(得分:0)
在PHP中打开与数据库服务器的连接时,应设置MySQL时区。
您可以在此处看到一些示例:Set timezone in PHP and MySQL
您也可以这样做(与MariaDB一起使用,从未在MySQL上测试过):
$db->exec("SET time_zone='Asia/Karachi';");
这样,您不必更新数据库配置,而可以根据变量来更新设置。