php日期正則
❶ php從一串字元串中用正則提取出年月日
d{4}/d{1,2}/d{1,2}
如果你不是要求很嚴謹去判斷日期的正確性的話,上面這個就足夠了.
❷ php正則匹配字元串中是否有日期數據
不覺得長的話,我寫一個:
<?php
$preg='/(?:19|20)?(?:[0-9]{2})?(?:-|\s|\/|.|年)?(?:0[1-9]|1[012])(?:-|\s|\/|.|月)(?:0[1-9]|[12][0-9]|3[01])(?:日)?\s?(?:[01][0-9]|2[1-4])?:?(?:[0-6]?[0-9])?:?(?:[0-6]?[0-9])?/i';
$str='2012/02/02 12:12:12開始大幅拉薩攔薯大家12:01捨得離開房間。
開始大幅拉薩大家2012年02月02日 12:12捨得離開2012年02月02日房間2012-02-02';
echo '有'.preg_match_all($preg, $str, $rr).'個時間數據';
printf("<p>輸出時間數耐困據為:</p><pre>簡畝者%s</pre>\n",var_export( $rr ,TRUE));
?>
❸ php怎麼驗證date 的輸入格式是否正確
上面那個的回答,簡直就是瞎胡鬧。。人家提問要的是如何驗證輸入的日期格式。php驗證可以用checkdate,這個系統自帶函數。checkdate (PHP 3, PHP 4, PHP 5)checkdate -- 驗證一個格里高里日期<?php
var_mp(checkdate(12, 31, 2000));
var_mp(checkdate(2, 29, 2001));
?> 上例將輸出:bool(true)bool(false)當然還可以用正則驗證。if(!ereg("敗祥羨[0-9]{4}-[0-9]{2}-[0-9]{2}", $_POST['date1']))
{
echo "日期格式不正確<BR>"察拍;
die();
} 當然前端給你個JS的驗證。 <form action="#" method="POST" name="form1"宴逗 onsubmit="return form_sub()">
<br>
請輸入日期:<input name="birthday" type="text" id="str_date">(如2010-05-01)
<input type="submit" value="提交日期">
</form>
<script>
function form_sub()
{
if(!test_date(document.form1.str_date.value))
{
alert("日期格式不正確");
return false;
}else{
alert("日期格式正確");
return false;
}
}function test_date(str_date)
{
var pattern = /[0-9]{4}-[0-9]{2}-[0-9]{2}/;
if(pattern.test(str_date))
return true;
else
return false;
}
</script>
❹ php應用:獲取日期正則表達式:\\d{4}[年|\-|\.]\d{\1-\12}[月|\-|\.]\d{\1-\31}日
^d{4}(年|-|.)(0?[1-9]|1[0-2])(月|-|.)(0?[1-9]|[1-2]d|3[0-1])日?$
這種是還是有缺陷的你可以看到最後一個,還有就是2月31日這樣的也會被匹配的。不過應對一般日期還是可以的。
❺ php 怎麼用正則匹配時間
$str = '1970-01-01 08:33:32';
//將找到的保存到$match里
preg_match("/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/", $str, $match);
/*
match【0】保存整個匹配結果
match【1】-match【6】保存每個()匹配的結果
你只要array_shift(match)就去除了第一個
*/
array_shift($match);
//for test
print_r($match);
❻ PHP如何用正則表達式把標准時間年月日轉為橫杠形式
首先,應該是雙反斜杠,不是單反斜杠
這里提供兩種方式
str_replace(array('年','月'),'-',$date_str);
date('Y-m-d H:i',strtotime($date_str));
❼ PHP正則表達式求教,在線等,日期提取
1, 一種是使用以下正則, 取得三個分組, 再將三個分組合並
(d{4})-(d{2})-(d{2})
'aabbccc2016-07-31cccddd99.88eee77.66ffff'.replace(/.*?(d{4})-(d{2})-(d{2}).*/,function(x,a,b,c){returna+b+c})
❽ PHP如何運用正則表達式更改日期
先正則找到日期字元串(中文的日期不行),然後用strtotime得到時間戳,利用改時間戳再次調用strtotime即可。
sample:
$str
=
"date:2012/01/01";
$reg
=
"/:(?<date>.*$)/";
preg_match($reg,
$str,
$match);
$time
=
date("Y-m-d",strtotime('yesterday',
strtotime($match['date'])));
var_mp($time);
❾ PHP正則表達式限制日期范圍
繞彎路了把,把用戶輸入的時間格式用js做限定,然後傳到php頁面轉化為時間辯含拿戳!再來比較!比如用戶輸入了1980-01-10 那麼傳到php頁面的話這么寫(僅供思路參考)
<?php
//...............你自己的代碼
$birthTime=strtotime($_POST['birthTime']);//將用戶輸入的日期轉化為時間戳
$startTime=strtotime('1985-01-01');//開始日期的時間戳老段
$endTime=strtotime('1995-12-31');//結束日期的時間戳
if($birthTime>=$startTime&&$birthTime<=$endTime){
echo'日起輸入是對的';
}else{
echo'攜搭日期非法';
}
?>
❿ PHP正則年月日匹配
既然你要這種給你吧
^d{4}-d{1,2}-d{1,2}$
匹配8個數字標准日期,建議你用2015-08-28這種格式
^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$