请问如何在 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;
}
我认为这种方式更简单:
if (is_a($myVar, 'DateTime')) ...
如果 $myVar
是 PHP DateTime
对象,则此表达式为 true。
从 PHP 5 开始,这可以进一步简化为:
if ($myVar instanceof DateTime) ...
function validateDate($date, $format = 'Y-m-d H:i:s')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
参考:
- http://www.php.net/manual/en/function.checkdate.php#113205
- https://stackoverflow.com/a/12323025/67332
最简单的答案是: 用strtotime()函数检查
$date = strtotime($datevariable);
如果是有效日期,它将返回时间戳,否则返回 FALSE。
我将使用以下方法:
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
}