/** * Checks datetime null or datetime * * @param object &$model use model * @param array $check check data array * @return bool */ public function checkDateTime(&$model, $check) { foreach ($check as $val) { if (Validation::blank($val)) { continue; } $ret = Validation::datetime($val); if (!$ret) { return false; } } return true; }
/** * {@inheritdoc} */ public function beforeValidate($options = array()) { if (empty($this->data[$this->alias]['token'])) { $this->data[$this->alias]['token'] = $this->generate(); } if (empty($this->data[$this->alias]['expires'])) { if (!empty($this->expires)) { $this->data[$this->alias]['expires'] = $this->expires; } else { $this->data[$this->alias]['expires'] = Common::read('Security.expireToken', '+3 days'); } } if (!Validation::datetime($this->data[$this->alias]['expires'])) { $this->data[$this->alias]['expires'] = date('Y-m-d H:i:s', strtotime($this->data[$this->alias]['expires'])); } return true; }
/** * checkDatetimeType * * @param array $question question * @param string $answer answer value * @return array error message */ public function checkDatetimeType($question, $answer) { $errors = array(); if ($question['question_type_option'] == QuestionnairesComponent::TYPE_OPTION_DATE) { if (!Validation::date($answer, 'ymd')) { $errors[] = sprintf(__d('questionnaires', 'Please enter a valid date in YY-MM-DD format.')); } } elseif ($question['question_type_option'] == QuestionnairesComponent::TYPE_OPTION_TIME) { if (!Validation::time($answer)) { $errors[] = sprintf(__d('questionnaires', 'Please enter the time.')); } } elseif ($question['question_type_option'] == QuestionnairesComponent::TYPE_OPTION_DATE_TIME) { if (!Validation::datetime($answer, 'ymd')) { $errors[] = sprintf(__d('questionnaires', 'Please enter a valid date and time.')); } } return $errors; }
/** * _validateDatetime 日付・時間の正当性 * * @param object &$model use model * @param int $questionTypeOption 時間・日付オプション * @param string $answer 登録データ * @return bool */ protected function _validateDatetime(&$model, $questionTypeOption, $answer) { if ($questionTypeOption == RegistrationsComponent::TYPE_OPTION_DATE) { if (!Validation::date($answer, 'ymd')) { $model->validationErrors['answer_value'][] = __d('registrations', 'Please enter a valid date in YY-MM-DD format.'); return false; } } elseif ($questionTypeOption == RegistrationsComponent::TYPE_OPTION_TIME) { if (!Validation::time($answer)) { $model->validationErrors['answer_value'][] = __d('registrations', 'Please enter the time.'); return false; } } elseif ($questionTypeOption == RegistrationsComponent::TYPE_OPTION_DATE_TIME) { if (!Validation::datetime($answer, 'ymd')) { $model->validationErrors['answer_value'][] = __d('registrations', 'Please enter a valid date and time.'); return false; } } else { $model->validationErrors['answer_value'][] = __d('net_commons', 'Invalid request.'); return false; } return true; }
/** * testDatetime method * * @return void */ public function testDatetime() { $this->assertTrue(Validation::datetime('27-12-2006 01:00', 'dmy')); $this->assertTrue(Validation::datetime('27-12-2006 01:00', array('dmy'))); $this->assertFalse(Validation::datetime('27-12-2006 1:00', 'dmy')); $this->assertTrue(Validation::datetime('27.12.2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('27.12.2006 13:00pm', 'dmy')); $this->assertTrue(Validation::datetime('27/12/2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('27/12/2006 9:00', 'dmy')); $this->assertTrue(Validation::datetime('27 12 2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('27 12 2006 24:00', 'dmy')); $this->assertFalse(Validation::datetime('00-00-0000 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('00.00.0000 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('00/00/0000 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('00 00 0000 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('31-11-2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('31.11.2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('31/11/2006 1:00pm', 'dmy')); $this->assertFalse(Validation::datetime('31 11 2006 1:00pm', 'dmy')); }
/** * __checkMinMaxDateTime * min and max is require both value * * @param object &$model use model * @param bool $check post data * @return bool */ private function __checkMinMaxDateTime(&$model, $check) { if ($model->data['QuestionnaireQuestion']['question_type_option'] == QuestionnairesComponent::TYPE_OPTION_DATE_TIME) { if (!Validation::datetime($model->data['QuestionnaireQuestion']['min'])) { return false; } if (!Validation::datetime($model->data['QuestionnaireQuestion']['max'])) { return false; } } return true; }