当前位置: 首页 > 知识库问答 >
问题:

php日期验证

诸葛皓
2023-03-14

我正在尝试设置php日期验证(MM/DD/YYYY),但我遇到了问题。以下是我得到的一个示例:

$date_regex = '%\A(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d\z%'; 

$test_date = '03/22/2010'; 
if (preg_match($date_regex, $test_date,$_POST['birthday']) ==true) {
    $errors[] = 'user name most have no spaces';`

共有3个答案

洪飞驰
2023-03-14

虽然checkdate很好,但这似乎是一个非常简洁的函数,可以验证,也可以给出格式。[来源]

function validateDate($date, $format = 'Y-m-d H:i:s') {
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

函数是从此答案或php复制的。净收入


额外的-

// Gives "2016-11-10 ..." because Thursday falls on Nov 10
DateTime::createFromFormat('D M j Y', 'Thu Nov 9 2016');

// false, Nov 9 is a Wednesday
validateDate('Thu Nov 9 2016', 'D M j Y');

燕超
2023-03-14

您可以使用DateTime类的一些方法,这可能很方便;即,DateTime::createFromFormat()DateTime::getLastErrors()结合使用。

$test_date = '03/22/2010';

$date = DateTime::createFromFormat('m/d/Y', $test_date);
$date_errors = DateTime::getLastErrors();
if ($date_errors['warning_count'] + $date_errors['error_count'] > 0) {
    $errors[] = 'Some useful error message goes here.';
}

这甚至可以让我们看到日期解析警告/错误的实际原因(查看$date\u errors中的警告和错误数组)。

戚建白
2023-03-14

你可以用checkdate。例如,类似这样的内容:

$test_date = '03/22/2010';
$test_arr  = explode('/', $test_date);
if (checkdate($test_arr[0], $test_arr[1], $test_arr[2])) {
    // valid date ...
}

更偏执的方法,不盲目相信输入:

$test_date = '03/22/2010';
$test_arr  = explode('/', $test_date);
if (count($test_arr) == 3) {
    if (checkdate($test_arr[0], $test_arr[1], $test_arr[2])) {
        // valid date ...
    } else {
        // problem with dates ...
    }
} else {
    // problem with input ...
}
 类似资料:
  • 问题内容: 我试图建立一个PHP日期验证(MM / DD / YYYY),但我遇到了问题。这是我得到的样本: 问题答案: 您可以使用checkdate。例如,如下所示: 一种更偏执的方法,不会盲目相信输入内容:

  • 主要内容:PHP date() 函数,PHP Date() - 格式化日期,完整的 PHP Date 参考手册PHP date() 函数用于格式化时间/日期。 PHP date() 函数 PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。 时间戳是一个字符序列,表示一定的事件发生的日期/时间。 语法 参数 描述 format 必需。规定时间戳的格式。 timestamp 可选。规定时间戳。默认是当前的日期和时间。 PHP Date() - 格式化日期 date() 函数的第一个

  • 在PHP中,我需要检查一个字符串是否为以下格式: 其中x、y和z是整数。因此,字符串包含3个整数,由2个破折号分隔,规则如下: 验证这一点最简单的方法是什么?

  • 问题内容: 我正在写一个shell脚本,并且对为什么我的日期验证代码不起作用感到困惑。我针对发现的类似问题尝试了以下解决方案,但is_valid始终设置为1: 如何正确验证日期格式?只有格式为MM / DD / YYYY的日期才有效 我也尝试了以下解决方案:Linux Bash-日期格式,但它也总是拒绝日期。 问题答案: Mac OS X随附的BSD 不支持该选项(或者,它用于完全不同的东西)。安

  • 我有数据帧,它有几个具有日期数据的列。我想对列应用验证,如果日期错误,我想用错误消息列更新该数据帧。我尝试过但工作不正常。我的示例数据帧数据。 我尝试了以下代码。 预期数据帧

  • 本文向大家介绍PHP 设置日期,包括了PHP 设置日期的使用技巧和注意事项,需要的朋友参考一下 示例 setDate 在DateTime对象中设置日期。 本示例将日期设置为2015年7月25日,它将产生以下结果: