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