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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
一个改进的UBB类
Oct 09 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
php ajax 静态分页过程形式
Sep 02 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
PHP 正则表达式小结
Feb 12 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
Laravel数据库读写分离配置的方法
Oct 13 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 str_pad 函数用法简介
2009/07/11 PHP
php中动态调用函数的方法
2015/03/16 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
javascript实现复选框全选或反选
2017/02/04 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
pytorch索引查找 index_select的例子
2019/08/18 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
国税会议欢迎词
2014/01/16 职场文书
中学自我评价
2014/01/31 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
2014年施工员工作总结
2014/11/18 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
Java中try catch处理异常示例
2021/12/06 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android