PHP正则匹配日期和时间(时间戳转换)的实例代码


Posted in PHP onDecember 14, 2016

先来一个比较简单实用的代码

日期YYYY-MM-DD

$str = '';
$isMatched = preg_match('/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/', $str, $matches);
var_dump($isMatched, $matches);

php需要一定的时间格式才能转换成时间戳(表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),这就要用到php正则判断,以下是代码:

<?php
//匹配时间格式为2016-02-16或2016-02-16 23:59:59前面为0时可以不写
$time = "2016-12-14 23:59:59";
$patten = "/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])(\s+(0?[0-9]|1[0-9]|2[0-3])\:(0?[0-9]|[1-5][0-9])\:(0?[0-9]|[1-5][0-9]))?$/";
if (preg_match($patten, $time)) {
 echo $timestro = strtotime($time);
} else {
 echo "error";
}
?>

对该正则的分析:

/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])(\s+(0?[0-9]|[12][0-3])\:(0?[0-9]|[1-5][1-9])\:(0?[0-9]|[1-5][1-9]))?$/

/是表达式开始符 最后面的/是表达式的结束符
^字符串的开始,即以***开始
$表示字符串的结尾,即表示已***结尾
|表示或者
()表示一个单元
d{4}匹配一个4位数,
(\-)匹配一个“-”号,
(0?[1-9]|1[012])匹配月份,
(0?[1-9]|[12][0-9]|3[01])匹配天,
(\s+(0?[0-9]|1[0-9]|2[0-3])\:(0?[0-9]|[1-5][0-9])\:(0?[0-9]|[1-5][0-9]))?整个匹配时分秒部分,?表示有或者没有。
最后一步是对匹配成功的部分,进行时间戳转换。
当前转换结果为:1329407999

附上我自己写的实例,代码如下:

<meta charset='utf-8'> 
<pre> 
<?php 
$str="嘿嘿2010/07/08 12:31:56哈哈1999/12/31 13:21:45"; 
$str2="嘿嘿2010-07-08 12:31:56哈哈1999-12-31 13:21:45"; 
//仅匹配日期 
preg_match_all("/d{4}/d{2}/d{2}/", $str, $arr); 
preg_match_all("/d{4}-d{2}-d{2}/", $str2, $arr2); 
//匹配日期与时间 
preg_match_all("/d{4}/d{2}/d{2}sd{2}:d{2}:d{2}/", $str, $arr3); 
preg_match_all("/d{4}-d{2}-d{2}sd{2}:d{2}:d{2}/", $str2, $arr4); 
echo '<font color="red">匹配日期</font><br>'; 
print_r($arr); 
print_r($arr2); 
echo '<font color="red">匹配日期和时间</font><br>'; 
print_r($arr3); 
print_r($arr4); 
?> 
</pre>

以上就是关于php 日期时间的正则内容,当然很多都是前端js验证的。大家可以参考三水点靠木其他的文章

PHP 相关文章推荐
4.与数据库的连接
Oct 09 PHP
php数据库抽象层 PDO
May 07 PHP
php 中的4种标记风格介绍
May 10 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
PHP类的反射用法实例
Nov 03 PHP
php获取系统变量方法小结
May 29 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
php实现点击可刷新验证码
Nov 07 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
Thinkphp整合微信支付功能
Dec 14 #PHP
php判断是否连接上网络的方法实例详解
Dec 14 #PHP
基于php实现的验证码小程序
Dec 13 #PHP
php 微信开发获取用户信息如何实现
Dec 13 #PHP
php断点续传之文件分割合并详解
Dec 13 #PHP
php json_encode与json_decode详解及实例
Dec 13 #PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 #PHP
You might like
PHP面向对象编程快速入门
2006/10/09 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP比你想象的好得多
2014/11/27 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
常用的javascript function代码
2008/05/23 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
vue实现简单图片上传
2020/06/30 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python过滤序列元素的方法
2020/07/31 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
python Cartopy的基础使用详解
2020/11/01 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
电气专业推荐信范文
2013/11/18 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
先进工作者获奖感言
2014/02/08 职场文书
国庆促销活动总结
2014/08/29 职场文书
法人委托书范本格式
2014/09/15 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js