/** * prepares the value to be processed by sfValidatorDate::doClean by creating * flattening the array structure of the date+timewidget to a string * * Input: $value['date'], $value['hour'], $value['minute'], $value['second'] * where $value['date'] is in the format: yyyy-mm-dd * * Output: yyyy-mm-dd hh:mm:ss * * @param mixed $value * @return */ protected function doClean($value) { $hour = isset($value['hour']) ? $value['hour'] : 0; $minute = isset($value['minute']) ? $value['minute'] : 0; $second = isset($value['second']) ? $value['second'] : 0; return parent::doClean(sprintf('%s %s:%s:%s', $value['date'], $hour, $minute, $second)); }
protected function doClean($value) { if (!is_array($value)) { $dateSeparator = $this->getOption('date_separator'); $dateArray = explode($dateSeparator, $value); if (count($dateArray) != 3) { throw new sfValidatorError($this, 'invalid', array('value' => $value)); } else { $value = array(); $value['day'] = $dateArray[0]; $value['month'] = $dateArray[1]; $value['year'] = $dateArray[2]; } } return parent::doClean($value); }