我有两个服务器,都是相同的设置,php 5.5, mysql 5.6, apache 2.9,两者都有相同的时区设置在php.ini
我的Linode VPS是有问题的服务器,我的其他专用服务器工作正常。
当使用T作为时区时,它有问题。
return $datetime->format('Y-m-d H:i:s T');
是在该linode上不能工作,但在其他服务器上可以正常工作的代码行。
错误输出:
exception 'ActiveRecord'DatabaseException' with message '22007, 1292, Incorrect datetime value: '2014-08-12 22:55:21 EDT' for column 'created_at' at row 1' in /home/chris/sites/domain.com/app/vendor/php-activerecord/lib/Connection.php:276
这可能是很多事情。可以尝试使用SQL模式。试着在两台服务器上运行这个命令,看看是否有一个不同:
SELECT @@sql_mode;
我也会尝试只是做查询直接在数据库上,而不是通过ActiveRecord,只是为了避免任何潜在的奇怪的中间件。