我正在尝试将字符串"1989-10-10"作为日期保存到数据库。我的当地时区是欧洲/莫斯科。
首先,我添加了时区来引导.php
date_default_timezone_set('Europe/Moscow');
然后在控制器中
$model = TableRegistry::get('model');
$entity = $model::newEntity();
$entity->birthday = '1989-10-10';
$model->save($entity);
结果在数据库中,这个日期看起来像 1989-10-09。不知何故,蛋糕将我当前的时区理解为莫斯科,并尝试将其转换为UTC。这是静态日期,不应转换。
CakePhp 创建了一个新版本 3.2.3,这个错误似乎已经解决了。
Date::parseDate() now correctly handles timezones. (@lorenzo)
以下是更多信息:http://bakery.cakephp.org/2016/02/21/cakephp_3016_3111_323_released.html