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 相关文章推荐
实用函数5
Nov 08 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
PHP之短标签开启设置
Jun 17 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
yii的CURD操作实例详解
Dec 04 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 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截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
php变量作用域的深入解析
2013/06/03 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
简单的Python抓taobao图片爬虫
2014/10/26 Python
基于Django用户认证系统详解
2018/02/21 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
Python定义一个函数的方法
2020/06/15 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
体育教师自荐信范文
2013/12/16 职场文书
大四自我鉴定
2014/02/08 职场文书
建筑横幅标语
2014/10/09 职场文书
中小学生学籍证明
2014/10/25 职场文书
2014年度培训工作总结
2014/11/27 职场文书
九年级化学教学反思
2016/02/22 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
Python Parser的用法
2021/05/12 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技