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 socket方式提交的post详解
Jul 19 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
如何使用Strace调试工具
Jun 03 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
php json转换相关知识(小结)
Dec 21 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 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一个找二层目录的小东东
2012/08/02 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
php编程每天必学之表单验证
2016/03/01 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
JQuery小知识
2010/10/15 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
原生js实现轮播图
2017/02/27 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python的SQLAlchemy框架使用入门
2015/04/29 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
采购文员岗位职责
2013/11/20 职场文书
实习评语
2013/12/16 职场文书
廉政教育心得体会
2014/01/01 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
我的祖国演讲稿
2014/05/04 职场文书
学校捐书活动总结
2015/05/08 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL