我不太擅长表达……我看了一些在线教程,但我还是不懂。基本上,如果字符串格式如下,我将尝试返回 TRUE
:
4位+空格+2位转换成日期。
所以,字符串看起来像:2010 02
,我正在尝试输出 February, 2010
。
我正在尝试使用 preg_match
,但我一直在获取
{ is not a modifier...
编辑
根据前 2 个响应,我更改了它,但在第一个和第二个上遇到了相同的未知修饰符错误:
if (preg_match('/([0-9{4}]) ([0-9]{2})/iU', $path_part)) {
$path_title = date("F, Y",strtotime(str_replace(" ", "-", $path_title)));
}
此外,刚刚在第一个响应中尝试了更深入的版本,虽然错误消失了,但它并没有改变输出:
$path_part = '2010 02';
if (preg_match('/^(\d{4}) (\d{2})$/', $path_part, $matches)) {
$path_title = $mon[(int)$matches[2]] . " " . $matches[1]; // prints Feb 2010
}
最佳答案
如果字符串的格式如下:4 位数字 + 空格 + 2 位数字,我将尝试返回 TRUE
return preg_match(/^\d{4} \d{2}$/,$input);
要转换为日期,您可以尝试类似的操作:
$mon = array('','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_str = "2010 02";
if(preg_match('/^(\d{4}) (\d{2})$/',$date_str,$matches))
{
print $mon[(int)$matches[2]] . " " . $matches[1]; // prints Feb 2010
}
关于PHP-预匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217261/