在 CodeIgniter4 中,如果想要 Model 在创建及更新数据时自动更新对应的日期字段,可以使用 useTimestamps
。
但是有很多人会遇到遇到一些问题,其中最主要的问题是数据库字段与数据内容不匹配导致的。
我们在设置了 $useTimestamps = true
后,往往忽略了与之配套使用的字段 dateFormat
。
一般的,我们在数据库中存储时间使用时间戳,我一般设置为 int UNSIGNED。大多人也是如此,在 CI4 中 dateFormat
的默认值为 datetime
case 'datetime':
$converted = $value->format('Y-m-d H:i:s');
break;
case 'date':
$converted = $value->format('Y-m-d');
break;
case 'int':
$converted = $value->getTimestamp();
break;
默认的日期格式为 2020-05-09 12:12:12
如果我们的数据会为 int 则数据会存储被为 2020,后边的信息无法存储。
所以我们需要将日期格式设置为 $dateFormat = 'int'