此日期2018年10月22日起的正则表达式preg_match_all是什么?

时间:2018-10-22 05:47:34

标签: php regex preg-match preg-match-all

此日期2018 October 22的正则表达式preg_match_all不带“-”或“ /”,但带有“”? 我想要preg_match_all像这样的模式2018 October 22,不喜欢2018-October-22,也不喜欢2018/10/22

2 个答案:

答案 0 :(得分:0)

选中此regex

$date='2018-October-22';
$date2='2018/10/22';
$new_date=preg_replace('/[^a-z0-9]/i', ' ', $date);
$new_date2=preg_replace('/[^a-z0-9]/i', ' ', $date2);
print_r($new_date);

print_r($new_date2);

Check output here

答案 1 :(得分:0)

您要使用DateTime::createFromFormat。这应该起作用:

$date1 = DateTime::createFromFormat('!Y F j', '2018 October 22'); // OK
$date2 = DateTime::createFromFormat('!Y F j', '2018-October-22'); // Fail

!表示将未解析的字段设置为1970/1/1 00:00的相应部分; j是月份中没有前导零的日期,F是完整月份(因此Feb无效),Y是年份(四位数)