使用 strtotime 从 DOMDocument 元素转换日期

发布于 2024-08-17 18:57:58 字数 656 浏览 6 评论 0原文

使用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
}

我无法使用 strtotime 将 $var 转换为时间戳。我不知道为什么,我知道 $cols->item(1)->nodeValue 返回了我想要的值,我什至尝试将其爆炸并内爆到另一个变量中,但我仍然可以不使用 strtotime 将其转换为时间戳。我还直接测试了该值

strtotime('11 Jan 2010');

并且它确实返回了时间戳,那么,我应该做什么?

I'm parsing some data using DOMDocument after fetching HTML file using curl. The codes look like this


$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
}

I can't convert $var to a timestamp using strtotime. I don't know why, I know $cols->item(1)->nodeValue returned the value I want, I even tried exploing and imploding it into another variable, but I still can't convert it to a timestamp using strtotime. I've also tested the value directly

strtotime('11 Jan 2010');

and it did return a timestamp, so, what should I do ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城仅有旧梦在 2024-08-24 18:57:58

我无法使用 php 5.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";
}

打印 2010-01-12 00:00:00重现问题

I can't reproduce the problem using php 5.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";
}

prints 2010-01-12 00:00:00

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文