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

下面贴出代码:

 代码如下 复制代码

<?php

//匹配时间格式为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

附上我自己写的实例

 代码如下 复制代码

<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>

时间: 2024-09-21 02:46:40

PHP正则匹配日期和时间程序代码的相关文章

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

先来一个比较简单实用的代码 日期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-0

php正则匹配html标签的程序代码

正则表达式 <(\S*?) [^>]*>.*?</\1>|<.*? /> 匹配 <html>hello</html>|<a>abcd</a> 不匹配 abc|123|<html>ddd   正则表达式 ^[^<>`~!/@\#}$%:;)(_^{&*=|'+]+$ 匹配 This is a test 不匹配 <href = | <br> | That's it   正

正则匹配日期格式的js代码

<body> <input type="date" name="textfield" id="text1" > <input type="button" value="按钮" onClick="checkDate('text1')"> </body> js代码 function checkDate(fname){ var sc = $(&q

php日期转中文程序代码

如果我们直接使用date函数获取日期显示的是数字的,如下  代码如下 复制代码 <?php      echo   date("Y-m-d");   ?> 输出的 2014-10-11 那么我们如果想得到 二零一四年十月十一日 怎么处理呢,后来看到一个朋友写了一句话函数  代码如下 复制代码 <?php #php日期转中文 $str = '2014-10-11'; echo str_replace(str_split('0123456789'), str_split(

Android获取通话时间程序代码

我们知道安卓系统中通话时长应该是归Callog管,所以建议去查查ContactProvider,或者是TelephonyProvider Service测试 可以的通话开始的时候启动Service 记录当前时间A, 然后stopSelf(); 另外在通话结束的时候再次启动一下Service,再次获得当前时间B, 然后把时间A和B进行比较处理 String time = Long.toString(比较后处理的时间) 然后调用  代码如下 复制代码 Toast.makeText(this, tim

python操作日期和时间的方法_python

不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 复制代码 代码如下: 方法:a = "2013-10-10 23:40:00"#将其转换为时间数组import timetimeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")#转换为时间戳:timeStamp = int(t

preg_match正则匹配的字符串

例 preg_match_all正则匹配字符串所有连接地址  代码如下 复制代码 $str ='<a href="http://www.a.com/2010/11-15/5.html">4</a>   <a href="http://www.b.com/2010/11-15/6.html">5</a>   <a href="http://www.b.com/2010/11-15/1.html"

mysql常用日期与时间函数详解

  MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------  ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-

PHP正则实战之匹配图片地址程序代码

图片网址规范的html代码无非就是 <img title="??" src="/wp-admin/%E5%9B%A73" alt="??" title="??" width="5" height="6" /> ??和??是非必需的,若要通过XHTML认证??.??.??必不可少,??是核心内容,当然就不能少了. 就正则谈正则的话,我写出的最短匹配是 (?<=img.+?