概述
$preg = '/^([12]ddd)-(0?[1-9]|1[0-2])-(0?[1-9]|[12]d|3[0-1]) ([0-1]d|2[0-4]):([0-5]d)(:[0-5]d)?$/';
preg_match($preg, '2018-1-2 24:00:50')
年:([12]ddd) 表示第一位只能是1或者2,后三位数字即可;范围1000-2999;
月:(0?[1-9]|1[0-2]) 表示当月份为1-9时,前面的0可传可不传,当十位数是1时,个位数只能是0-2,范围1-12
日:(0?[1-9]|[12]d|3[0-1])表示当日是1-9时,前面的0可传可不传,当十位数是3时,个位数为0或1,范围1-31;
时:([0-1]d|2[0-4]) 表示当一个字符是0或1的时候,第二个数字是0-9,第一个数字是2的时候,第二个数字是0-4,那么时的范围是00-24;
分:([0-5]d) 分的范围是00-59;
秒:(:[0-5]d)? 表示秒可传可不传,例如:2018-5-16 16:46,2018-5-16 16:46:00均可验证通过;
注意:此事件只判断格式是否正确,牵扯到是否闰年,特殊月份包含天数不加判断。
- 字符功能
- . 匹配任意1个字符(除了n)
- [ ] 匹配[ ]中列举的字符
- d 匹配数字,即0-9
- D 匹配非数字,即不是数字
- s 匹配空白,即 空格,tab键
- S 匹配非空白
- w 匹配单词字符,即a-z、A-Z、0-9、_
- W 匹配非单词字符
- $ 以上一个字符结尾
- 表示数量
- 匹配多个字符的相关格式
- 字符 功能
- 匹配前一个字符出现0次或者无限次,即可有可无
- 匹配前一个字符出现1次或者无限次,即至少有1次
- ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
- {m} 匹配前一个字符出现m次
- {m,} 匹配前一个字符至少出现m次
- {m,n} 匹配前一个字符出现从m到n次
- 表示边界
- ^ 匹配字符串开头
- $ 匹配字符串结尾
- b 匹配一个单词的边界
- B 匹配非单词边界
- 匹配分组
- | 匹配左右任意一个表达式
- (ab) 将括号中字符作为一个分组
- num 引用分组num匹配到的字符串
- (?P<name>) 分组起别名
- (?P=name) 引用别名为name分组匹配到的字符串
最后
以上就是糟糕戒指为你收集整理的php判断一个字符串是否符合时间格式的全部内容,希望文章能够帮你解决php判断一个字符串是否符合时间格式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复