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做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
php牛逼的面试题分享
Jan 18 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
PHP MVC框架skymvc支持多文件上传
May 26 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
谈谈PHP语法(5)
2006/10/09 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php实现cookie加密的方法
2015/03/10 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
jQuery实现本地存储
2020/12/22 jQuery
Python字符串格式化的方法(两种)
2017/09/19 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python——全排列数的生成方式
2020/02/26 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
深入浅析Python代码规范性检测
2020/07/31 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
儿园租房协议书范本
2014/12/02 职场文书
运动会观后感
2015/06/09 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Jsonp劫持学习
2021/04/01 PHP
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang