如何防止PHP在创建DateTime对象时崩溃?
$in = new DateTime($in);
$out = new DateTime($out);
$in
和$out
都来自一个表单,所以它们可以是任何东西。我强制用户使用日历,并使用javascript将其阻止为日期。如果用户可以绕过此检查怎么办?
如果使用$in = "anything else other than a date"
,PHP将会崩溃并阻塞整个页面的渲染。
如果PHP不能解析日期,我如何防止这种情况和return(0)
?
发布于 2013-04-15 23:35:43
查看DateTime()
上的文档,下面是一小段代码:
<?php
try {
$date = new DateTime('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format('Y-m-d');
?>
发布于 2013-04-15 23:35:37
那么异常处理呢?
try {
$in = new DateTime($in);
} catch (Exception $e) {
echo $e->getMessage();
return(0);
}
发布于 2013-04-15 23:35:37
如果无法解析日期/时间字符串,则DateTime
constructor将抛出异常。你可以抓住它。看一下下面的代码片段:
try {
$dt = new DateTime('10th - 12th June 2013'); // bad date string
} catch (Exception $e) {
var_dump($e->getMessage());
}
https://stackoverflow.com/questions/16019126
复制相似问题