php正则表达式日期(php 正则表达式)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

本篇文章给大家谈谈php正则表达式日期,以及php 正则表达式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

php应用:获取日期正则表达式:\\d{4}[年|\-|\.]\d{\1-\12}[月|\-|\.]\d{\1-\31}日?

^\d{4}(年|\-|\.)(0?[1-9]|1[0-2])(月|\-|\.)(0?[1-9]|[1-2]\d|3[0-1])日?$

这种是还是有缺陷的你可以看到最后一个,还有就是2月31日这样的也会被匹配的。不过应对一般日期还是可以的。

php 时间正则式的表示

最简单的正则 如 : \d{4}-\d{2}-\d{2}

但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题.....

对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。

UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。

先考虑与年份无关的前三条规则,年份可统一写作

(?!0000)[0-9]{4}

下面仅考虑月和日的正则

1. 包括平年在内的所有年份的月份都包含1-28日

(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])

2. 包括平年在内的所有年份除2月外都包含29和30日

(0[13-9]|1[0-2])-(29|30)

3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日

(0[13578]|1[02])-31)

合起来就是除闰年的2月29日外的其它所有日期

(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)

接下来考虑闰年的实现

1 : 四年一闰

([0-9]{2}(0[48]|[2468][048]|[13579][26])

2 : 百年不闰,四百年再闰

(0[48]|[2468][048]|[13579][26])00

3 : 合起来就是所有闰年的2月29日

([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)

四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则

^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

PHP如何运用正则表达式更改日期

先正则找到日期字符串(中文的日期不行),然后用strtotime得到时间戳,利用改时间戳再次调用strtotime即可。

sample:

$str

=

"date:2012/01/01";

$reg

=

"/:(?date.*$)/";

preg_match($reg,

$str,

$match);

$time

=

date("Y-m-d",strtotime('yesterday',

strtotime($match['date'])));

var_dump($time);

怎么用正则表达式来验证日期啊 (yyyy-MM-dd)

日期格式“yyyy-MM-dd”可以使用正则表达式“\\d{4}-\d{\1-\12}-\d{\1-\31}?”来验证。

其中,“\d{4}”代表4位0-9的数字,“\d{\1-\12}”代表数字1-12,“\d{\1-\31}”代表数字1-31。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

扩展资料:

常用正则表达式:

1、验证用户名和密码

正则表达式:("^[a-zA-Z]\w{5,15}$")

正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位

2、验证电话号码

正则表达式:("^(\d{3,4}-)\d{7,8}$")

正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;

3、验证手机号码

正则表达式:"^1[3|4|5|7|8][0-9]{9}$"

4、验证Email地址

正则表达式:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")

5、只能输入由数字和26个英文字母组成的字符串

正则表达式:("^[A-Za-z0-9]+$");

6、整数或者小数

正则表达式:^[0-9]+([.][0-9]+){0,1}$

参考资料来源:百度百科-正则表达式

PHP如何用正则表达式把标准时间年月日转为横杠形式

首先,应该是双反斜杠,不是单反斜杠

这里提供两种方式

str_replace(array('年','月'),'-',$date_str);

date('Y-m-d H:i',strtotime($date_str));

PHP正则表达式限制日期范围

绕弯路了把,把用户输入的时间格式用js做限定,然后传到php页面转化为时间戳!再来比较!比如用户输入了1980-01-10 那么传到php页面的话这么写(仅供思路参考)

?php

//...............你自己的代码

$birthTime = strtotime($_POST['birthTime']);//将用户输入的日期转化为时间戳

$startTime = strtotime('1985-01-01');//开始日期的时间戳

$endTime = strtotime('1995-12-31');//结束日期的时间戳

if($birthTime=$startTime  $birthTime=$endTime){

echo '日起输入是对的';

}else{

echo '日期非法';

}

?

关于php正则表达式日期和php 正则表达式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-03-09 12:03:16
收藏
分享
海报
46
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了