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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
PHP4和PHP5共存于一系统
Nov 17 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
php中session定期自动清理的方法
Nov 12 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 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中文件缓存转内存缓存的方法
2011/12/06 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
英语专业个人求职信范文
2014/02/01 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
娱乐节目策划方案
2014/06/10 职场文书
医学生求职自荐书
2014/06/12 职场文书
审计班子对照检查材料
2014/08/27 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
学校运动会简讯
2015/07/20 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL