Search code examples
phpmysqlactiverecordlinode

Activerecord Timezone Incorrect Format


I have two servers, both identical setups, php 5.5, mysql 5.6, apache 2.9, both have the same timezone set in php.ini.

My Linode VPS is the server with the issue, my other dedicated server it works fine.

When using the T for timezone it has problems.

return $datetime->format('Y-m-d H:i:s T');

is the line of code that does not work on the linode, but works fine on the other server.

Here is the error output.

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

Solution

  • This could be a number of things. One to try could be the SQL mode. Try running this on both servers and see if one differs:

    SELECT @@sql_mode;

    I would also try just doing the query directly on the database, rather than through ActiveRecord, just to avoid any potential weirdness from middleware.