php - SQL时区问题

标签 php mysql server

我正在开发一个基于 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/

相关文章:

php - Helm + Kubernetes,在 PHP 中加载和启用扩展或模块

php - 从 SQL 中选择到数组中

mysql 外键错误 150

java - Android 和 java 蓝牙客户端服务器应用程序

javascript - 使用ajax从数组输出中获取一个值

php - Jquery AJAX 附加数据重置

mysql - 在具有相同值的多个实例的 SQL 中选择随机

php - 运行 Nginx 和 PHP5-FPM 时无法更新到最新的 PHPMyAdmin

PHP:一致地识别本地服务器

python - Bottle 服务器接受问号作为 Python 中的输入