PHP正則匹配日期和時(shí)間(時(shí)間戳轉(zhuǎn)換)的實(shí)例代碼
先來(lái)一個(gè)比較簡(jiǎn)單實(shí)用的代碼
日期YYYY-MM-DD
$str = '';
$isMatched = preg_match('/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/', $str, $matches);
var_dump($isMatched, $matches);
php需要一定的時(shí)間格式才能轉(zhuǎn)換成時(shí)間戳(表示從格林威治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù)),這就要用到php正則判斷,以下是代碼:
<?php
//匹配時(shí)間格式為2016-02-16或2016-02-16 23:59:59前面為0時(shí)可以不寫
$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";
}
?>
對(duì)該正則的分析:
/^\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á)式開始符 最后面的/是表達(dá)式的結(jié)束符
^字符串的開始,即以***開始
$表示字符串的結(jié)尾,即表示已***結(jié)尾
|表示或者
()表示一個(gè)單元
d{4}匹配一個(gè)4位數(shù),
(\-)匹配一個(gè)“-”號(hào),
(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]))?整個(gè)匹配時(shí)分秒部分,?表示有或者沒(méi)有。
最后一步是對(duì)匹配成功的部分,進(jìn)行時(shí)間戳轉(zhuǎn)換。
當(dāng)前轉(zhuǎn)換結(jié)果為:1329407999
附上我自己寫的實(shí)例,代碼如下:
<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);
//匹配日期與時(shí)間
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">匹配日期和時(shí)間</font><br>';
print_r($arr3);
print_r($arr4);
?>
</pre>
以上就是關(guān)于php 日期時(shí)間的正則內(nèi)容,當(dāng)然很多都是前端js驗(yàn)證的。大家可以參考腳本之家其他的文章
相關(guān)文章
php實(shí)現(xiàn)對(duì)兩個(gè)數(shù)組進(jìn)行減法操作的方法
這篇文章主要介紹了php實(shí)現(xiàn)對(duì)兩個(gè)數(shù)組進(jìn)行減法操作的方法,涉及php操作數(shù)組的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析
這篇文章主要介紹了PHP數(shù)組函數(shù)array_multisort()用法,結(jié)合實(shí)例形式詳細(xì)分析了array_multisort函數(shù)的功能,定義及進(jìn)行數(shù)組排序過(guò)程中的使用技巧,需要的朋友可以參考下2016-04-04
PHP加密函數(shù) Javascript/Js 解密函數(shù)
php加密,js解密,貌似沒(méi)什么意義,主要是key在js中會(huì)被看到,不過(guò)在某些地方可能會(huì)用到2013-09-09
php下關(guān)于Cannot use a scalar value as an array的解決辦法
已經(jīng)定義過(guò)的一個(gè)布爾型變量在下面被我直接當(dāng)數(shù)組來(lái)調(diào)用了,所以就出現(xiàn)錯(cuò)誤了2010-08-08
PHP使用trim函數(shù)去除字符串左右空格及特殊字符實(shí)例
這篇文章主要介紹了PHP使用trim函數(shù)去除字符串左右空格及特殊字符的用法,結(jié)合實(shí)例簡(jiǎn)單分析了trim函數(shù)不帶附加參數(shù)去除空格及使用附加參數(shù)去除指定字符的使用技巧,需要的朋友可以參考下2016-01-01
php mssql 數(shù)據(jù)庫(kù)分頁(yè)SQL語(yǔ)句
php mssql幾條常見的數(shù)據(jù)庫(kù)分頁(yè) SQL 語(yǔ)句2008-12-12
PHP 與 UTF-8 的最佳實(shí)踐詳細(xì)介紹
這篇文章主要介紹了PHP 與 UTF-8 的最佳實(shí)踐詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01
PHP預(yù)定義超全局?jǐn)?shù)組變量小結(jié)
這篇文章主要介紹了PHP預(yù)定義超全局?jǐn)?shù)組變量,結(jié)合實(shí)例形式總結(jié)分析了預(yù)定義超全局?jǐn)?shù)組變量的特性、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-08-08

