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 Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  JavaScript数据类型有哪些_如何准确判断一个变量的类型  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何在IIS7中新建站点?详细步骤解析  如何正确选择百度移动适配建站域名?  Android Socket接口实现即时通讯实例代码  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Laravel如何为API生成Swagger或OpenAPI文档  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  EditPlus中的正则表达式 实战(2)  Laravel如何实现多对多模型关联?(Eloquent教程)  jQuery中的100个技巧汇总  bootstrap日历插件datetimepicker使用方法  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  新三国志曹操传主线渭水交兵攻略  昵图网官网入口 昵图网素材平台官方入口  如何获取上海专业网站定制建站电话?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  香港服务器部署网站为何提示未备案?  网站建设要注意的标准 促进网站用户好感度!  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  电商网站制作价格怎么算,网上拍卖流程以及规则?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel怎么使用artisan命令缓存配置和视图  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在阿里云通过域名搭建网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  轻松掌握MySQL函数中的last_insert_id()  Laravel如何实现模型的全局作用域?(Global Scope示例)  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何在万网开始建站?分步指南解析  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  网站页面设计需要考虑到这些问题  高端云建站费用究竟需要多少预算?  如何在宝塔面板中修改默认建站目录?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  高性能网站服务器配置指南:安全稳定与高效建站核心方案  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何用腾讯建站主机快速创建免费网站?