diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index 30ce7e3f0..2077e9672 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -908,11 +908,13 @@ class Controller extends Object { $modelClass = $this->modelClass; } foreach($this->{$modelClass}->_tableInfo->value as $field) { + $useNewDate = false; $dateFields = array('Y'=>'_year', 'm'=>'_month', 'd'=>'_day', 'H'=>'_hour', 'i'=>'_min', 's'=>'_sec'); foreach ($dateFields as $default => $var) { if(isset($this->data[$modelClass][$field['name'] . $var])) { ${$var} = $this->data[$modelClass][$field['name'] . $var]; unset($this->data[$modelClass][$field['name'] . $var]); + $useNewDate = true; } else { ${$var} = date($default); } @@ -922,11 +924,11 @@ class Controller extends Object { } $newDate = null; - if ('datetime' == $field['type'] && isset($this->data[$modelClass][$field['name'].'_year'])) { + if ('datetime' == $field['type'] && $useNewDate) { $newDate = "{$_year}-{$_month}-{$_day}:{$_hour}:{$_min}:{$_sec}"; - } else if ('date' == $field['type'] && isset($this->data[$modelClass][$field['name'].'_year'])) { + } else if ('date' == $field['type'] && $useNewDate)) { $newDate = "{$_year}-{$_month}-{$_day}"; - } else if ('time' == $field['type'] && isset($this->data[$modelClass][$field['name'].'_hour'])) { + } else if ('time' == $field['type'] && $useNewDate) { $newDate = "{$_hour}:{$_min}:{$_sec}"; } if($newDate && !in_array($field['name'], array('created', 'updated', 'modified'))) {