Php 从DOMDocument元素使用strotime转换日期

Php 从DOMDocument元素使用strotime转换日期,php,domdocument,strtotime,Php,Domdocument,Strtotime,在使用curl获取HTML文件之后,我正在使用DOMDocument解析一些数据。代码是这样的 $dom = new DOMDocument(); @$dom->loadHTML($content); $tables = $dom->getElementsByTagName('table'); $rows = $tables->item($tblNum)->getElementsByTagName('tr'); foreach ($rows as $row) { $cols = $r

在使用curl获取HTML文件之后,我正在使用DOMDocument解析一些数据。代码是这样的


$dom = new DOMDocument();
@$dom->loadHTML($content);
$tables = $dom->getElementsByTagName('table');
$rows = $tables->item($tblNum)->getElementsByTagName('tr');

foreach ($rows as $row) {
    $cols = $row->getElementsByTagName('td');
    $var = $cols->item(1)->nodeValue; // The problem is here
}
我无法使用strotime将
$var
转换为时间戳。我不知道为什么,我知道
$cols->item(1)->nodeValue
返回了我想要的值,我甚至尝试将其分解并内插到另一个变量中,但我仍然无法使用strotime将其转换为时间戳。我还直接测试了该值

strotime('2010年1月11日')


它确实返回了一个时间戳,那么,我该怎么办呢?

我无法使用PHP5.3.1/winxp重现这个问题

$content = '<html><head><title>...</title></head><body>
  <table>
    <tr><td>X</td><td>12 Jan 2010</td></tr>
  </table>
</body></html>';
$tblNum = 0;

$dom = new DOMDocument();
@$dom->loadHTML($content);
$tables = $dom->getElementsByTagName('table');
$rows = $tables->item($tblNum)->getElementsByTagName('tr');

foreach ($rows as $row) {
  $cols = $row->getElementsByTagName('td');
  $var = $cols->item(1)->nodeValue;
  echo date('Y-m-d H:i:s', strtotime($var)), "\n";
}
$content=”。。。
2010年1月12日
';
$tblNum=0;
$dom=新的DOMDocument();
@$dom->loadHTML($content);
$tables=$dom->getElementsByTagName('table');
$rows=$tables->item($tblNum)->getElementsByTagName('tr');
foreach($行作为$行){
$cols=$row->getElementsByTagName('td');
$var=$cols->item(1)->nodeValue;
回显日期('Y-m-d H:i:s',标准时间($var)),“\n”;
}

打印内容显示它返回的内容。要转换的日期。节点值返回2010年1月11日,然后使用
var\u dump()
检查其类型。它看起来不是一个字符串。它实际上返回了字符串(13)。值周围可能有空格(如换行符)。修剪它。我在Linux上使用PHP5.2.10,稍后我会在Windows中测试代码。我得到了与PHP5.2.12-pl0-Gentoo相同的结果。显然,在值之前有一个,您可以尝试通过在日期之前添加来重现问题,因此,最后,我只使用$content=str_replace(“”,,$content);因为$var=str_replace(“”,,$var)不起作用。谢谢