检查字符串是否会在PHP中转换为日期

Bre*_*ett 2 php validation date

一个简单的跟进从早期的问题(PHP中的日期函数)我有以下代码:

$date_str = "Jan 14th 2011";
$date = new DateTime($date_str);
echo $date->format('d-m-y');
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否有一种简单的方法来检查$ date_str是否会转换为日期,以便我可以在失败时停止阻止错误?

基本上我希望避免使用try catch语句,但也许这是不可能的.

Mar*_*c B 6

根据文档,如果无法正确解析日期,DateTime构造函数将抛出异常.所以...

try {
    $date = new DateTime($date_str);
} catch (Exception $e) {
    die("It puked!");
}
Run Code Online (Sandbox Code Playgroud)

如果你正在使用程序界面,你会得到一个布尔值false,所以...

$date = date_create_from_format(...);
if ($date === FALSE) {
    die("It puked!");
}
Run Code Online (Sandbox Code Playgroud)