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 相关文章推荐
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
PHP中操作ini配置文件的方法
Apr 25 PHP
php中的ini配置原理详解
Oct 14 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
迁移PHP版本到PHP7
Feb 06 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
乳制品整治工作方案
2014/05/29 职场文书
2014年征兵标语
2014/06/20 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
安全生产标语口号
2015/12/26 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript