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利用cookie实现访问次数统计代码
May 19 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
微信支付开发交易通知实例
Jul 12 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
PHP实现类似于C语言的文件读取及解析功能
Sep 01 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 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的memory_limit限制的方法分享
2012/02/21 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
jquery处理json对象
2014/11/03 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
Python中类型检查的详细介绍
2017/02/13 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
django 模版关闭转义方式
2020/05/14 Python
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
采购主管的岗位职责
2013/12/17 职场文书
python中urllib包的网络请求教程
2022/04/19 Python