php+正则校验日期格式,正则表达式使用格式为YYYY-MM-DD在PHP中验证日期

搜索热词

我正在尝试制作日期正则表达式验证器.我遇到的问题是我使用的是带有“日期”类型的输入字段,它就像Chrome中的魅力一样;它在Chrome中打开了一个日历,但在其余部分它什么也没做,所以我决定手动输入其余的日期.

这是我的错误抛出消息(我正在寻找YYYY-MM-DD格式):

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

$hiredate = $_POST['hiredate'];

if (!preg_match($date_regex,$hiredate)){

$errors[] = 'Your hire date entry does not match the YYYY-MM-DD required format.';

}

我知道有很多这方面的例子,但我已经尝试了20个,我无法解决它.也许我错过了一些东西.

这是输入字段,如果有些相关:

@H_301_14@

你的正则表达式没有用,因为你有未转义/分隔符.

将以YYYY-MM-DD格式验证日期的正则表达式如下:

^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$

它将验证年份从19或20开始,该月份不大于12且不等于0且该日期不大于31且不等于0.

使用您的初始示例,您可以像这样测试它:

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

$hiredate = '2013-14-04';

if (!preg_match($date_regex,$hiredate)) {

echo '
Your hire date entry does not match the YYYY-MM-DD required format.
';

} else {

echo '
Your date is set correctly
';

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值