我正在开发一个基于 PHP 的项目,我遇到一个问题,我购买了一个主机,其服务器位于另一个国家/地区,而我在巴基斯坦,当我从 PHPMyAdmin 的数据库表中输入数据时,输入该国家/地区的日期,即比我们晚了 11 个小时,这就是为什么我的插入查询和更新查询不起作用设置了 Php 时区但未设置服务器时区。
php_value date.timezone 'Asia/Karachi';
我使用这是我的 htaccess 文件也使用
date.timezone = "Asia/Karachi"
在 php ini 文件中
最佳答案
(渴望发表评论)
如果您编写一个具有用户特定时区的网站,那么在数据库站点上管理时区会有点复杂。我更喜欢这个解决方案:
- 尝试将所有时间戳存储为 unix 时间的 bigint 值。
- 仅在用户界面将时间转换为字符串。
示例
对于数据库存储,我使用:
UPDATE table SET start_time = UNIX_TIMESTAMP();
结果要么作为 native 整数检索,要么转换为 UTC/GMT 时间:
SELECT unix_time, UNIX_TIMESTAMP(db_date)
您可以使用以下方法进行测试:
SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(now());
在 PHP 中,您现在可以通过加法和减法简单地进行快速时间计算。它在用户界面上打印时间,设置时区(可能通过数据库查询评估)并使用 date() 或 strftime() 或任何日期+时间类。
关于php - SQL时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54748088/