php - 如何绕过在奇怪时区拥有 mySQL 数据库的主机
问题描述
我正在与一家接管了我以前的托管公司的无能托管公司作斗争。除了他们在迁移中破坏的所有其他内容之外,mySQL 数据库设置为澳大利亚时间(不确定哪个城市)。我可以通过添加一个 php.ini 文件来设置 PHP 环境时区,但这仍然会使数据库处于奇怪的状态。
我认为从逻辑上讲,主机的数据库应该在 UTC 上,并且他们应该安装 mysql 时区表(但遗憾的是,这将需要数周的时间来纠缠他们的“帮助”服务台才能到达任何地方)。当然,我无权设置任何 SQL 变量(如果没有时区表,这一切都是徒劳的)。
现在,我可以通过偏移来解决这个问题 - 我知道主机在 +10 小时,我需要 +12 小时,但是夏令时这一切都会出错(澳大利亚的和我当地的不会同时改变时间)。
而且我运行一个预订系统,所以让用户在过去 1 小时预订东西不会很顺利......
所以 - 因为我有 PHP 环境工作,我的解决方案是从 PHP 环境中获取偏移量
$d = new DateTime();
echo $d->format('Z');
这给了我以秒为单位的偏移量——除以 60*60,我们得到我的时区的当前偏移量。我相信这会随着夏令时而改变。
so I get an offset of +12 hours
现在我可以在 SQL 中应用它,因为 UTC_timestamp() 函数有效,我可以做到
select CONVERT_TZ (UTC_TIMESTAMP, '+0:00', '+12:00');
获取当前日期和时间。
绕过无能的托管公司应该这么难吗?有没有更简单的方法??
解决方案
推荐阅读
- npm - 从 NPM 切换到 GitHub 包
- python - ValueError:检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到了形状为 (117、1、32、32、3) 的数组
- c# - 生成的敌人只会移动,但不会统一射击
- pine-script - 松树脚本 - 无法使用参数调用 plotchar
- html - 在 webkit 滚动条悬停时更改 webkit thumb css
- apache-kafka - 如何在 Flink 中手动提交 Kafka 偏移量
- python - 掷骰子游戏 - 存储掷骰结果的列表
- python-3.x - 如何在不使用太多资源的情况下保持 python 脚本空闲
- php - cUrl 给出常量 http 代码 0 => 错误 6 的问题
- python - TensorFlow GPU 内存分配