温馨提示×

strtotime php处理非法输入

PHP
小樊
81
2024-11-18 14:57:11
栏目: 编程语言

strtotime() 是 PHP 中的一个非常有用的函数,它可以将任何英文文本的日期时间描述解析为 Unix 时间戳。然而,如果输入的日期时间字符串不符合标准的格式,strtotime() 可能会返回 false,这可能导致程序出错。

为了处理非法输入,你可以使用以下方法:

  1. 使用 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;
}
  1. 使用 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";
}

这两种方法都可以帮助你处理非法输入,确保你的程序在遇到无效日期时间字符串时不会出错。

0