strtotime php處理非法輸入

PHP
小樊
81
2024-11-18 14:57:11

strtotime() 是 PHP 中的一個(gè)非常有用的函數(shù),它可以將任何英文文本的日期時(shí)間描述解析為 Unix 時(shí)間戳。然而,如果輸入的日期時(shí)間字符串不符合標(biāo)準(zhǔn)的格式,strtotime() 可能會(huì)返回 false,這可能導(dǎo)致程序出錯(cuò)。

為了處理非法輸入,你可以使用以下方法:

  1. 使用 try-catch 語(yǔ)句捕獲異常:
function safe_strtotime($date) {
    try {
        $timestamp = strtotime($date);
        if ($timestamp === false) {
            throw new Exception("Invalid date format");
        }
        return $timestamp;
    } catch (Exception $e) {
        // 處理異常,例如記錄錯(cuò)誤或返回默認(rèn)值
        echo "Error: " . $e->getMessage();
        return null;
    }
}

$date = "Invalid date";
$timestamp = safe_strtotime($date);
if ($timestamp !== null) {
    echo "The timestamp is: " . $timestamp;
}
  1. 使用 date_create_from_format() 函數(shù)檢查日期格式:
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 {
    // 處理非法輸入,例如記錄錯(cuò)誤或返回默認(rèn)值
    echo "Error: Invalid date format";
}

這兩種方法都可以幫助你處理非法輸入,確保你的程序在遇到無(wú)效日期時(shí)間字符串時(shí)不會(huì)出錯(cuò)。

0