在读取数据库的相关日期的时候我遇到了这样这个错误:
这个问题大概描述的就是,函数输入数据类型错误。原来thinkphp在从数据库调用时间的时候就自作聪明的加上了一个时间戳转换函数,目的在于将int时间戳类型的时间转换成0000-00-00这种类型,本来是好意,但是我的的数据在数据表里的类型就是0000-00-00(Y-m-d)类型的呀,thinkphp在强制执行函数的时候当然就会有这样的报错出现,因为函数期望的是传入int类型呀。
看网上有说可以在database里面设置:
'datetime_format' => false,
来关闭这个自作聪明的函数,但是我的thinkphp版本比较老所以还不支持关闭。于是想要解决这个问题就只好在数据存入数据表的时候就把它设置为int类型,具体就是将create_time和update_time的结构类型改为int,然后把相应模型的:
protected $autoWriteTimestamp = 'datetime';
改成:
protected $autoWriteTimestamp = true;
这样数据就迎合了thinkphp自作聪明的函数了,问题解决。