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
php 移除数组重复元素的一点说明
Nov 27 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
php读取XML的常见方法实例总结
Apr 25 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 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错误Warning:mysql_query()解决方法
2015/10/24 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
实例讲解php实现多线程
2019/01/27 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
js数组实现权重概率分配
2017/09/12 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
Python随机生成彩票号码的方法
2015/03/05 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
python3.4中清屏的处理方法
2020/07/06 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
EJB的基本架构
2016/09/22 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
大学应届毕业生个人求职信
2013/09/23 职场文书
两则小学生的自我评价分享
2013/11/14 职场文书
《小池塘》教学反思
2014/02/28 职场文书
小学班主任培训方案
2014/06/04 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
军训后的感想
2015/08/07 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫