如何检查变量类型是否为DateTime

时间:2013-10-16 06:38:14

标签: php datetime

如何检查变量是否是php上的日期时间类型,好吗? 我试过这个,但似乎不起作用。

public function setRegistrationDate ($registrationDate) {

   if (!is_date($registrationDate, "dd/mm/yyyy hh:mm:ss")) {
       trigger_error('registrationDate != DateTime', E_USER_WARNING);
       return;
   }

   $this->_registrationDate = $registrationDate;
}

4 个答案:

答案 0 :(得分:19)

我认为这种方式更简单:

{{1}}

答案 1 :(得分:7)

最简单的答案是:检查strtotime()功能

$date = strtotime($datevariable);

如果是有效日期,则会返回时间戳,否则返回 FALSE

答案 2 :(得分:5)

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

参考:

答案 3 :(得分:1)

我会使用以下方法:

public function setRegistrationDate ($registrationDate) {
  if(!($registrationDate instanceof DateTime)) {
    $registrationDate = date_create_from_format("dd/mm/yyyy hh:mm:ss", $registrationDate)
  }

  if(!($registrationDate instanceof DateTime)) {
    trigger_error('registrationDate is not a valid date', E_USER_WARNING);
    return false;
  }

  $this->_registrationDate = $registrationDate;
  return true
}