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函数解决SQL injection
Dec 09 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
php写入文件不覆盖的实例讲解
Sep 17 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
php导出生成word的方法
2015/12/25 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
js加强的经典分页实例
2013/03/15 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
vue实例的选项总结
2020/06/09 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
教师业务学习制度
2014/01/25 职场文书
自行车广告词大全
2014/03/21 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle