如果字符串包含介于1950和2010之间的年份,我如何与preg_match进行检查?
示例:
$string =“我出生于1986年。”;
发布于 2010-10-29 03:37:25
如果字符串的格式已经可以被getdate()使用,那么其他答案将是最好的解决方案。
如果字符串只是一些随机文本,其中可能包含日期,也可能不包含日期,则需要使用正则表达式来查找这些数字。
/(19[5-9][0-9]|20(0[0-9]|10))/
当然,您不能保证以这种方式匹配的数字实际上是一年。它可能是2005磅的钢铁或1976英里的高速公路。
发布于 2010-10-29 03:29:40
假设你有一个时间戳:
$date = getdate($timestamp);
if ($date['year'] >= 1950 && $date['year'] <= 2010)
return 'good';发布于 2010-10-29 03:32:37
$date = getdate( $timestamp );
if( (int)$date['year'] >= 1950 && (int)$date['year'] <= date('Y') ) {
return 'good';
}:P
if( preg_match( '/^(19[5-9]{1}[0-9]{1}|20(0[0-9]{1}|10))$/', $i ) ) {}
// tested - works. 1950-2010https://stackoverflow.com/questions/4046497
复制相似问题