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";
}
這兩種方法都可以幫助你處理非法輸入,確保你的程序在遇到無效日期時間字符串時不會出錯。