strtotime()
是 PHP 中的一个函数,用于将任何英文文本的日期时间描述解析为 Unix 时间戳
在调用 strtotime()
之前,确保输入不为空。如果为空,可以返回一个错误消息或默认值。
$input = ""; // 输入的日期时间字符串
if ($input === "") {
echo "错误:输入不能为空";
// 或者设置一个默认值
// $timestamp = strtotime("now");
} else {
$timestamp = strtotime($input);
}
@
运算符抑制错误:在调用 strtotime()
时,可以使用 @
运算符来抑制错误。如果解析失败,strtotime()
将返回 false
,而不是抛出一个错误。
$input = "invalid date"; // 输入的日期时间字符串
$timestamp = @strtotime($input);
if ($timestamp === false) {
echo "错误:无法解析日期时间字符串";
// 或者设置一个默认值
// $timestamp = strtotime("now");
}
你可以使用 set_error_handler()
函数来自定义错误处理程序,以便在 strtotime()
解析失败时执行特定的操作。
function customErrorHandler($errno, $errstr, $errfile, $errline) {
echo "错误:无法解析日期时间字符串 - {$errstr}";
}
set_error_handler("customErrorHandler");
$input = "invalid date"; // 输入的日期时间字符串
$timestamp = strtotime($input);
if ($timestamp === false) {
// 如果需要,可以在这里处理错误
}
restore_error_handler(); // 恢复默认错误处理程序
请注意,使用这些方法来处理错误输入可能会导致代码的可读性降低。因此,在使用它们之前,请确保你了解可能的后果,并确保这种方法适用于你的项目。