问题描述
我正在与一家接管我以前的托管公司的无能托管公司作斗争。除了他们在迁移中破坏的其他所有内容外,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');
获取当前日期和时间。
在无能的托管公司周围工作是否应该如此困难?有没有更简单的方法??
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)