php判断一个字符串是否符合时间格式

$preg = '/^([12]\d\d\d)-(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]\d\d\d) 表示第一位只能是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. . 匹配任意1个字符(除了\n)
  2. [ ] 匹配[ ]中列举的字符
  3. \d 匹配数字,即0-9
  4. \D 匹配非数字,即不是数字
  5. \s 匹配空白,即 空格,tab键
  6. \S 匹配非空白
  7. \w 匹配单词字符,即a-z、A-Z、0-9、_
  8. \W 匹配非单词字符
  9. $ 以上一个字符结尾
  • 表示数量
  1. 匹配多个字符的相关格式
  2. 字符 功能
  3. 匹配前一个字符出现0次或者无限次,即可有可无
  4. 匹配前一个字符出现1次或者无限次,即至少有1次
  5. ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
  6. {m} 匹配前一个字符出现m次
  7. {m,} 匹配前一个字符至少出现m次
  8. {m,n} 匹配前一个字符出现从m到n次

  • 表示边界
  1. ^ 匹配字符串开头
  2. $ 匹配字符串结尾
  3. \b 匹配一个单词的边界
  4. \B 匹配非单词边界
  • 匹配分组
  1. | 匹配左右任意一个表达式
  2. (ab) 将括号中字符作为一个分组
  3. \num 引用分组num匹配到的字符串
  4. (?P<name>) 分组起别名
  5. (?P=name) 引用别名为name分组匹配到的字符串
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值