Php 检查字符串是否为有效日期

Php 检查字符串是否为有效日期,php,php-carbon,Php,Php Carbon,如何检查我的字符串是否为有效日期(“2018-01-01”) 有没有一个简单的方法,或者我需要这样做: if (Carbon::createFromFormat('YOUR DATE FORMAT', $stringVariable) !== false) { // valid date } 您应该使用DateTime类检查此日期是否有效。您的日期是否始终采用该格式?或者你是在尝试使用任意用户输入?我使用的是日期选择器,因此它应该始终采用该格式。尽管它适用于“2018-01-01”格式

如何检查我的字符串是否为有效日期(“2018-01-01”)

有没有一个简单的方法,或者我需要这样做:

if (Carbon::createFromFormat('YOUR DATE FORMAT', $stringVariable) !== false) {
    // valid date
}

您应该使用DateTime类检查此日期是否有效。您的日期是否始终采用该格式?或者你是在尝试使用任意用户输入?我使用的是日期选择器,因此它应该始终采用该格式。尽管它适用于“2018-01-01”格式,但值得记住的是,对于其他日期格式,结果是错误的。例如,格式为“d/m/Y”的日期“2018年10月13日”是一个有效日期,但对于strotime,结果为false。@格式为“d/m/Y”的MagnoAlberto不是一个有效的日期格式。如果分隔符是斜杠(/),则假定为美式
m/d/y
;而如果分隔符是破折号(-)或点(.),则假定为欧洲
d-m-y
格式。
$timestamp  = strtotime($date);

return $timestamp ? $date  : null ;