strtotime()
是 PHP 中的一个非常有用的函数,它可以将任何英文文本的日期时间描述解析为 Unix 时间戳。然而,如果输入的日期时间字符串不符合标准的格式,strtotime()
可能会返回 false
,这可能导致程序出错。
为了处理非法输入,你可以使用以下方法:
- 使用
try-catch
语句捕获异常:
function safe_strtotime($date) {
try {
$timestamp = strtotime($date);
if ($timestamp === false) {
throw new Exception("Invalid date format");
}
return $timestamp;
} catch (Exception $e) {
// 处理异常,例如记录错误或返回默认值
echo "Error: " . $e->getMessage();
return null;
}
}
$date = "Invalid date";
$timestamp = safe_strtotime($date);
if ($timestamp !== null) {
echo "The timestamp is: " . $timestamp;
}
- 使用
date_create_from_format()
函数检查日期格式:
function safe_strtotime($date, $default_format = 'Y-m-d') {
$format = date_create_from_format($default_format, $date);
if (!$format) {
return false;
}
return strtotime($date);
}
$date = "Invalid date";
$timestamp = safe_strtotime($date);
if ($timestamp !== false) {
echo "The timestamp is: " . $timestamp;
} else {
// 处理非法输入,例如记录错误或返回默认值
echo "Error: Invalid date format";
}
这两种方法都可以帮助你处理非法输入,确保你的程序在遇到无效日期时间字符串时不会出错。