我有一个字符串" scbdemo2016-10-21:getlastweekReadBooks4795"。 如何查找上面的字符串中包含日期并验证日期是当前日期。
答案 0 :(得分:1)
使用正则表达式轻松完成:
$isToday = stringDateToday("scbdemo2016-10-21:getlastweekReadBooks4795");
function stringDateToday($string) {
$reg = "/\d{4}-\d{2}-\d{2}/";
$date = new DateTime();
preg_match($reg, $string, $matches);
if (isset($matches[0])) {
return $matches[0] == $date->format("Y-m-d");
}
return false;
}
如果字符串中的日期是今天, stringDateToday()
将返回true
。日期可以是字符串中的任何位置。
修改强>
根据评论中的建议,您可能希望将new DateTime()
更改为new DateTime('now', new DateTimeZone('Europe/London'))
以指定时区。
答案 1 :(得分:0)
这是您的代码,但它仅适用于具有:字符的字符串,无论如何
function checkdata($date, $format)
{
$format=strstr(preg_replace("/[a-zA-Z]+/", '',$format),":",true);
// date_default_timezone_set('UTC');
$d = DateTime::createFromFormat($format, $date);
if($d && $d->format($format) === $date) {
return true;
} else {
return false;
}
}
$data="scbdemo2016-10-21:getlastweekReadBooks4795";
if(checkdata($data,'Y-m-d'))
echo "Yes";
else
echo "NO";