11

请问如何检查变量是否是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

4 回答 4

47

我认为这种方式更简单:

if (is_a($myVar, 'DateTime')) ...

$myVar如果是 PHPDateTime对象,则此表达式为真。

从 PHP 5 开始,这可以进一步简化为:

if ($myVar instanceof DateTime) ...
于 2015-05-21T14:24:04.043 回答
8
function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

参考:

于 2013-10-16T06:40:28.683 回答
6

最简单的答案是:strtotime()函数检查

$date = strtotime($datevariable);

如果它是有效日期,它将返回timestamp,否则返回FALSE

于 2013-10-16T06:49:00.100 回答
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
}
于 2013-10-16T06:42:59.947 回答