dongzhuohan7085 2016-02-01 00:06
浏览 35
已采纳

验证错误日期PHP

I'm trying to validate dates in PHP, but the problem is that with some dates work, an example would be: "02/2/2015" returns true, "20/12/2015" false returns, is a serious problem and I see no error in the code.

Function.

<?php

function check_date($date) {
    $open_date  = explode('/', $date);
    if (count($open_date) == 3) {
        if (checkdate($open_date[0], $open_date[1], $open_date[2])) {
            return true;
        } else {
         return false;
        }
    } else {
        return false;
    }
}

//$date = "02/2/2015"; // return true !
$date = "20/12/2015"; // return false ?

if(check_date($date)) {
    echo "valid";
} else {
    echo "invalid";
}

?>

How could solve this problem?

  • 写回答

2条回答 默认 最新

  • douruhu4282 2016-02-01 00:16
    关注

    checkdate expects a month, day and year, in that order:

    https://secure.php.net/manual/en/function.checkdate.php

    If your dates are formatted as day/month/year then you can still use checkdate, you'll just have to change the order of the parameters:

    if (checkdate($open_date[1], $open_date[0], $open_date[2]))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥20 win11无法启动 持续蓝屏且系统还原失败,无法开启系统保护
  • ¥15 哪个tomcat中startup一直一闪而过 找不出问题
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码