Home > php教程 > php手册 > PHP正则匹配日期和时间程序代码

PHP正则匹配日期和时间程序代码

WBOY
Release: 2016-06-13 10:04:27
Original
1598 people have browsed it

今天我要替换一个数据库要把数据库指定字符串中的日期与时间取出来然后时间戳转换了,我字段是字符带日期了匹配时间格式为2012-02-16或2012-02-16 23:59:59前面为0的时候可以不写,后来找到一些测试代码

下面贴出代码:

 代码如下 复制代码

//匹配时间格式为2012-02-16或2012-02-16 23:59:59前面为0的时候可以不写
$time = "2012-02-16 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

附上我自己写的实例

 代码如下 复制代码


<br>
<?php <br />
$str="嘿嘿2010/07/08 12:31:56哈哈1999/12/31 13:21:45";<br>
$str2="嘿嘿2010-07-08 12:31:56哈哈1999-12-31 13:21:45";<br>
//仅匹配日期<br>
preg_match_all("/d{4}/d{2}/d{2}/", $str, $arr);<br>
preg_match_all("/d{4}-d{2}-d{2}/", $str2, $arr2);<br>
//匹配日期与时间<br>
preg_match_all("/d{4}/d{2}/d{2}sd{2}:d{2}:d{2}/", $str, $arr3);<br>
preg_match_all("/d{4}-d{2}-d{2}sd{2}:d{2}:d{2}/", $str2, $arr4);<br>
echo '<font color="red">匹配日期</font><br>';<br>
print_r($arr);<br>
print_r($arr2);<br>
echo '<font color="red">匹配日期和时间</font><br>';<br>
print_r($arr3);<br>
print_r($arr4);<br>
?><br>
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template