PHP正则匹配日期和时间(时间戳转换)的实例代码

发布时间 - 2026-01-10 21:48:42    点击率:

先来一个比较简单实用的代码

日期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时间戳和日期相互转换操作实例小结  # PHP 实现公历日期与农历日期的互转换  # 关于PHP转换超过2038年日期出错的问题解决  # PHP入门教程之日期与时间操作技巧总结(格式化  # 验证  # 获取  # 转换  # 计算等)  # php中日期类型转换实例讲解  # 都是  # 其他的  # 这就  # 要用  # 转换成  # 我自  # 先来  # 不写  # 即以  # 起至  # 格式为  # 格林威治时间  # red  # 总秒数  # print_r  # lt  # time  # class  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速辨别茅台真假?关键步骤解析  如何选择可靠的免备案建站服务器?  Laravel怎么在Blade中安全地输出原始HTML内容  潮流网站制作头像软件下载,适合母子的网名有哪些?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  如何在不使用负向后查找的情况下匹配特定条件前的换行符  如何快速上传建站程序避免常见错误?  JavaScript如何实现音频处理_Web Audio API如何工作?  手机网站制作与建设方案,手机网站如何建设?  网站优化排名时,需要考虑哪些问题呢?  个人网站制作流程图片大全,个人网站如何注销?  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  怎么用AI帮你为初创公司进行市场定位分析?  Laravel Docker环境搭建教程_Laravel Sail使用指南  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  浅析上传头像示例及其注意事项  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何在Windows服务器上快速搭建网站?  如何在IIS7中新建站点?详细步骤解析  如何在IIS7上新建站点并设置安全权限?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何在IIS服务器上快速部署高效网站?  如何快速查询域名建站关键信息?  Mybatis 中的insertOrUpdate操作  Laravel如何处理和验证JSON类型的数据库字段  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何与Inertia.js和Vue/React构建现代单页应用  nginx修改上传文件大小限制的方法  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  java ZXing生成二维码及条码实例分享  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  如何彻底删除建站之星生成的Banner?  详解Huffman编码算法之Java实现  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  微信公众帐号开发教程之图文消息全攻略  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何在 Pandas 中基于一列条件计算另一列的分组均值  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何基于云服务器快速搭建网站及云盘系统?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何使用查询构建器?(Query Builder高级用法)  油猴 教程,油猴搜脚本为什么会网页无法显示?  bing浏览器学术搜索入口_bing学术文献检索地址  黑客入侵网站服务器的常见手法有哪些?