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