为什么教条不像旧约会?
Exception was thrown : Could not convert database value "1876-01-01 00:00:00-00:00:00" to Doctrine Type datetime
另一个:
Exception was thrown : Could not convert database value "0000-00-00 00:00:00-00:00:00" to Doctrine Type datetime
在我的实体中,我会覆盖datetime
和datetimetz
Type::overrideType('datetime', 'Doctrine\DBAL\Types\VarDateTimeType');
Type::overrideType('datetimetz', 'Doctrine\DBAL\Types\VarDateTimeType');
如果我将日期更新为1976-01-01 00:00:00-00:00:00
,则可以正常使用。
更新:
所以我正在运行Ubuntu 12.04 64位,我也知道我的64位time_t正在运行这些测试:
strtotime()在运行的32位和64位系统上产生不同的输出 PHP 5.3.3(如前所述)。这会影响“零日期” (“0000-00-00 00:00:00”)以及传统32以外的日期 日期范围。
试验:
strtotime("0000-00-00 00:00:00") returns FALSE on a 32 bit system.
strtotime("0000-00-00 00:00:00") returns -62169955200 on a 64 bit system.
执行echo strtotime("0000-00-00 00:00:00");
时我得到了这个:
php time_test.php -62169966000
Doctrine也有问题吗?
答案 0 :(得分:2)
PHP中的时代是1970年或1901年,具体取决于您的系统。
从PHP手册:
时间戳的有效范围通常来自1901年12月13日星期五 20:45:54 GMT到星期二,2038年1月19日03:14:07 GMT。 (这些是日期 对应于32位带符号的最小值和最大值 整数)。但是,在PHP 5.1.0之前,这个范围是有限的 某些系统(例如Windows)上的01-01-1970至19-01-2038。