我相信我要疯了。
$expire = date('Y-m-d H:i:s', strtotime("+30 minutes") );
它在回显时按预期工作,但是当我通过 wordpress 数据库类将它插入到自定义表中时,datetime
它会显示当前时间减去 30 分钟。
我疯了吗?
简单地给出您正在使用的时间范围,假设您在您所在的地方观察夏令时,我想知道您是否看到标准/夏令时冲突。
首先,看看您是否遇到与“+60 分钟”相同的问题作为测试。如果它在数据库中是-60,那么它可能是一个错误,但是,如果它是数据库中的当前时间,它实际上可能是一个时区问题。
确保在主机操作系统和数据库中正确配置了所有时区。如果数据库列的类型是“时间戳”,那么 mysql在存储时将其转换为 UTC,然后在检索时返回,因此错误配置的时区也可能导致 1 小时偏移。
希望这可以帮助!
所有日期和时间功能现在都依赖于正确的时区设置。
您可以在脚本中执行此操作
date_default_timezone_set('America/Los_Angeles'); // for example
或检查您的 php.ini 以了解此设置
date.timezone = UTC
并为您的特定时区正确设置,这是您需要的支持时区列表