php - 如何从字符串中提取非分隔日期和时间

标签 php regex

我需要从此字符串中提取日期和时间:some_report_20161005_1530.xml,以便我可以将其重新格式化为更易于使用的格式。日期和时间会因文件而异,但始终保持以下格式:some_report_{year}{month}{day}_{24hr time}.xml

$test = 'some_report_20161005_1530.xml';
preg_match('(\d{4})(\d{2})(\d{2})_(\d{4})', $test, $test_matches);
print_r( $test_matches );

实现这一目标的最佳方法是什么?

(请原谅我对这些功能的无知或误用。我绝不是专家)

最佳答案

如果 some_report 不包含数字,则日期和时间部分已经可以在 DateTime 构造函数中正常工作,因此您可以使用更简单的正则表达式提取它们。

$date_time = new DateTime(preg_replace("/[^0-9]/", "", $your_string));

关于php - 如何从字符串中提取非分隔日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39924450/

相关文章:

php - Laravel 构造函数重定向不起作用

php - 为什么以下 mySQL 查询失败?

php - 是否可以使用 dompdf 导出 Google 图表?

javascript - 在 JS 中使用正则表达式进行字符串验证

ruby - 如何使用正则表达式交换 ruby​​ 字符串中的数字位置?

用于自定义验证的 JavaScript 正则表达式

JavaScript:查找所有 <href> 链接并向其添加样式标签,其中包含字体、颜色等样式详细信息。

javascript - 将 html 表单数据发送到发件人的电子邮件

php - 使用溢出 :hidden (CSS/HTML/PHP) 在包装器中拟合图像

java - 用空字符串替换java中方括号之间的逗号和句号