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


相关推荐: C#如何调用原生C++ COM对象详解  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  青岛网站建设如何选择本地服务器?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Swift中switch语句区间和元组模式匹配  如何在Ubuntu系统下快速搭建WordPress个人网站?  javascript日期怎么处理_如何格式化输出  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  微信小程序 闭包写法详细介绍  Laravel怎么清理缓存_Laravel optimize clear命令详解  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel观察者模式如何使用_Laravel Model Observer配置  PHP 500报错的快速解决方法  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel如何使用Blade组件和插槽?(Component代码示例)  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  公司门户网站制作流程,华为官网怎么做?  Laravel Session怎么存储_Laravel Session驱动配置详解  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel如何配置Horizon来管理队列?(安装和使用)  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何安全更换建站之星模板并保留数据?  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel如何实现文件上传和存储?(本地与S3配置)  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何获取上海专业网站定制建站电话?  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何在建站主机中优化服务器配置?  Laravel如何处理文件下载请求?(Response示例)  香港服务器选型指南:免备案配置与高效建站方案解析  如何用虚拟主机快速搭建网站?详细步骤解析  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何确保西部建站助手FTP传输的安全性?  如何快速搭建高效可靠的建站解决方案?  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Python文件操作最佳实践_稳定性说明【指导】  如何基于PHP生成高效IDC网络公司建站源码?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel如何实现一对一模型关联?(Eloquent示例)