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-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
, 正则
, 日期
时间
正则表达式匹配时间戳、正则匹配时间戳、python正则匹配实例、时间戳正则表达式、java时间戳正则表达式,以便于您获取更多的相关知识。

时间: 2025-01-20 22:53:21

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

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

PHP中preg_match正则匹配中的/u、/i、/s含义_php技巧

PHP中preg_match正则匹配的/u /i  /s是什么意思 /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配

php实现使用正则将文本中的网址转换成链接标签_php技巧

复制代码 代码如下: function text2links($str='') {     if($str=='' or !preg_match('/(http|www\.|@)/i', $str)) { return $str; }     $lines = explode("\n", $str); $new_text = '';     while (list($k,$l) = each($lines)) {         // replace links:         $l

mysql 查询指定日期时间内sql语句实现原理与代码_php技巧

在数据库教程设计时必须注意时间字段为int(11)这样,保存在数据库的是一个数字型日期时间戳,我们可以用mktime函数求出当前日期的时间戳进行加减就OK了,下面看实例 //一个月 复制代码 代码如下: $lastMonth = mktime(date('h'),date('i'),date('s'),date('m')-1,date('d'),date('y')); $where .= " dtime > $lastMonth"; //三个月 复制代码 代码如下: $lastT

php多层数组与对象的转换实例代码_php技巧

多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化 简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力. 通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑.下面上代码: 复制代码 代码如下: <?php function object

js实现json数据行到列的转换的实例代码_javascript技巧

月份 郑州-电量 新乡-电量 安阳-电量201201 33 29 23201202 35 26 25201203 34 27 24201204 36 28 26201205 34.3 28.8 24.3这样,Ext的图表就能把它显示成三个序列了.我写了如下的函数实现这个功能: 复制代码 代码如下: function CovertData(jsonData,idField, fromField, toField){ var result = [], curRecord =null, num; va

PHP 将图片按创建时间进行分类存储的实现代码_php技巧

复制代码 代码如下: <?php /* 代码功能:使用PHP巧妙将图片按创建时间进行分类存储; 图片文件属性须取消只读属性,否则无法删除 By lost63 */ //延时设置 set_time_limit(0); $path='C:\恢复文件\图形$图片\JPEG 图像 (.jpg)'; $result=dir($path); while($value=$result->read()){ if(strpos($value,'.JPG')==true||strpos($value,'.jpg'

Java 时间转换的实例代码_java

Java 时间转换的实例代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by Edward on 2016/6/30. */ public class TimeUtil { /** * 将 1467341232351 转换为 指定格式 "yyyy-MM-dd HH:mm:ss.

regex-C#关与正则匹配链接的问是,这段代码怎么修改?

问题描述 C#关与正则匹配链接的问是,这段代码怎么修改? substrUrl 是链接的值,一般情况是能匹配,但是像这样 链接里带了很多空格的,就匹配不出来了,求高手看下这个正则怎么改进使带空格时也能取出 代码如下: Regex reg = new Regex(@""(?is)<a[^>]*?href=(['""""]?)(?<url>[^'""""s>]+)1[^>]*&