如何使用PHP从字符串中查找日期

时间:2014-03-03 15:42:37

标签: php date

我有外部HTML文件,我读到PHP变量。在此HTML文件中有不同的日期(和时间)。读取变量的最简单方法是什么? 日期时间始终采用以下格式: <td align="left" valign="middle" class="contentValueFont">01-Mar-14 19:24:45 GMT</td>
当然日期和时间变化。
在其他地方,我曾经使用类名进行搜索,并在</td>到来之前将所有以下内容读取到变量,但这次同一个类名在不同的地方使用,与我的日期/时间无关。 我不擅长正则表达式。

感谢您的帮助。 吨。

4 个答案:

答案 0 :(得分:2)

正则表达式不适合作业。使用HTML parser提取日期和DateTime类进行处理:

$html = <<<HTML
<td align="left" valign="middle" class="contentValueFont">01-Mar-14 19:24:45 GMT</td>
HTML;

$dom = new DOMDocument;
$dom->loadHTML($html);
$date = $dom->getElementsByTagName('td')->item(0)->nodeValue;

$dateObj = new DateTime($date);
echo $dateObj->format('Y-m-d H:i:s');

输出:

2014-03-01 19:24:45

答案 1 :(得分:0)

这可能有效:

preg_match('/\d\d-[A-Z]{3}-\d\d \d\d:\d\d:\d\d [A-Z]{3}/i', $html, $match);
print_r($match);

根据您的评论,这将获得该格式的所有日期:

preg_match_all('/\d\d-[A-Z]{3}-\d\d \d\d:\d\d:\d\d [A-Z]{3}/i', $html, $matches);
print_r($matches[0]); 

答案 2 :(得分:-1)

您需要使用正则表达式(非常少),但php提供this功能以满足您的需求。

答案 3 :(得分:-1)

<?php

$unix = strtotime('01-Mar-14 19:24:45 GMT'); //get unix timestamp
echo date('d-M-y H:i:s', $unix); // output in any format
//output - 01-Mar-14 19:24:45

引用可在date()中用于格式化的所有字符:http://in1.php.net/manual/en/function.date.php