此日期2018 October 22
的正则表达式preg_match_all不带“-”或“ /”,但带有“”?
我想要preg_match_all像这样的模式2018 October 22
,不喜欢2018-October-22
,也不喜欢2018/10/22
答案 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);
答案 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
是年份(四位数)