如何在 PHP 中进行日期格式验证检查(正则)

日期检查是任何系统的必备功能。我想介绍一下如何立即用 PHP 检查日期。

日期格式检查

用PHP查看日期的方法主要分为两步。
首先,检查日期格式。日期格式检查是“YYYY-MM-DD”或“YYYY/MM/DD”等格式检查。
有很多方法可以做到这一点,但我认为最好使用正则表达式进行检查。

if(!preg_match('/^[1-9]{1}[0-9]{0,3}\/[0-9]{1,2}\/[0-9]{1,2}$/', $date))

{
        return false;
}

上面的示例允许“YYYY/MM/DD”格式的“1/0/0”到“9999/99/99”的值。
你很快就会注意到这里的 0/0 和 99/99 并不存在。为了保存它,需要下一步,即日期的存在性检查。

日期存在检查

日期的存在检查是使用 PHP 函数完成的:“checkdate”。

list($y, $m, $d) = explode('/', $date);

if(!checkdate($m, $d, $y))

{

        return false;

}

请注意,“checkdate”函数具有西方日期表示法格式,因此它的格式为“月、日、年”,而不是日本的“年、月、日”。

使用 PHP 进行日期检查 (YYYY / mm / dd)

在实际项目中,年份固定为4位数、月份、日期的情况很多,比如“2013/01/02”,这里就一并提供。具体还是要根据需求来修改。

function isYmd($date){

    //如果没有输入,则通过
    if ($date == '') {
        return true;
    }
     //19xx和20xx有效,这里只控制月份和日期的位数,

     //通过下面的checkdate函数进行存在性检查。
    if(!preg_match('/^(19|20)[0-9]{2}\/\d{2}\/\d{2}$/', $date))

   {
        return false;
    }
 
    list($y, $m, $d) = explode('/', $date);
 
    if(!checkdate($m, $d, $y)){
        return false;
    }
    return true;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值