php查找并转换字符串中的日期
我需要找到字符串中的所有日期,并将其转换为格式php查找并转换字符串中的日期,php,regex,date,Php,Regex,Date,我需要找到字符串中的所有日期,并将其转换为格式“d.m.Y”。 我知道如何简单地使用strotime()和date()将日期转换为另一种格式,但如何将所有日期转换为字符串? 比如说, Some text 2018-08-28 11:56:48 .Some text 2017-10-30 07:39:21 将转换为 Some text 28.08.2018 11:56:48 .Some text 30.10.2017 07:39:21 您可以使用匿名回调函数为您转换日期: $input=“一些
“d.m.Y”
。
我知道如何简单地使用strotime()
和date()
将日期转换为另一种格式,但如何将所有日期转换为字符串?
比如说,
Some text 2018-08-28 11:56:48 .Some text 2017-10-30 07:39:21
将转换为
Some text 28.08.2018 11:56:48 .Some text 30.10.2017 07:39:21
您可以使用匿名回调函数为您转换日期:
$input=“一些文本2018-08-28 11:56:48.一些文本2017-10-30 07:39:21”;
回显preg_replace_回调(
“/\d{4}-\d{2}-\d{2}/”,//搜索“XXXX-XX-XX”,其中X表示十进制数字
函数($match)
{
返回日期(“d.m.Y”,strotime($match[0]);//解析并重新格式化匹配的日期
},
美元投入);
()
输出:
Some text 28.08.2018 11:56:48 .Some text 30.10.2017 07:39:21
如果要同时匹配日期和时间,可以使用正则表达式
/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/
而格式字符串
d.m.Y H:i:s
。您可以通过单个正则表达式替换:
见:
- 模式:
\b(\d{4})-(\d{2})-(\d{2})\b
- 替换:
$3.$2.$1
- 标志:
gm