You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP查找并提取字符串中的日期?

在PHP中提取字符串内位置不固定的日期

由于你的日期格式是统一的dd.mm.yyyy hh:mm:ss,不管它在字符串中的位置如何,都可以用正则表达式精准匹配提取,这是最可靠的方案。

基础提取方法

使用preg_match匹配符合格式的日期字符串:

$status = "OK, 26.10.2022 13:24:00, Delivered Zak";
// 或者 $status = "28.10.2022 11:20:00, Delivered";

// 匹配dd.mm.yyyy hh:mm:ss格式的正则
$datePattern = '/\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}:\d{2}/';

if (preg_match($datePattern, $status, $matches)) {
    $extractedDate = $matches[0];
    echo $extractedDate; // 输出对应日期,比如26.10.2022 13:24:00
} else {
    echo "未找到有效日期";
}

转换为DateTime对象(可选)

如果需要对提取到的日期进行后续处理(比如格式化、时间计算),可以将其转换为PHP的DateTime对象:

if (preg_match($datePattern, $status, $matches)) {
    $dateStr = $matches[0];
    // 按照指定格式解析日期字符串
    $dateObj = DateTime::createFromFormat('d.m.Y H:i:s', $dateStr);
    
    if ($dateObj) {
        // 示例:转换为Y-m-d H:i:s格式输出
        echo $dateObj->format('Y-m-d H:i:s');
    } else {
        echo "日期解析失败";
    }
}

正则规则说明

  • \d{2}:匹配两位数字(对应日、月、时、分、秒)
  • \.:匹配日期中的点号(正则中点是特殊字符,需转义)
  • \d{4}:匹配四位数字(对应年份)
  • 空格:匹配日期与时间之间的分隔空格

这个方案不受日期在字符串中位置的影响,只要格式符合就能准确提取。

内容的提问来源于stack exchange,提问作者Dan Rais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:26:01