繁体   English   中英

Node.js从DOM中抓取日期时间

[英]Node.js Scrape datetime from a DOM

我有一个简单的问题。

我有这个HTML代码

  <time datetime="2014-02-18"> 18 February 2014</time>

我如何以“ 2014-02-18”格式抓取日期时间?

我试过了

var date = $('time').value;

要么

var date = $('time').dateTime;

但是两者都在控制台上返回undefined。

谢谢!

(我假设您在Node或cheerio或类似版本中使用jQuery。)

您可以通过attr获取字符串:

var dateString = $('time').attr('datetime');

然后以您喜欢的方式将其转换为日期,并确保允许正确的时区。 例如,您可以

var date = new Date(dateString);

...首先检查了您的Node版本中的V8版本后会执行此操作,因为不幸的是,该规范困扰于它:

  • 在ES5之前根本没有定义
  • 如果没有时区指示符而不是根据ISO-8601的本地时间,则在ES5中将其错误定义为UTC,因此"2014-02-18"将是UTC,但是:
  • 该问题已在ES2015中修复,因此"2014-02-18"将被解释为当地时间,但是:
  • 然后在ES2016中更新为仅日期形式应为UTC, 日期时间形式应为本地时间,因此"2014-02-18"将再次为UTC

因此,只要确定您知道使用V8的副本,或者使用new Date(year, month, day) (用于本地时间)或new Date(Date.UTC(year, month day)) (对于UTC)自行处理。

时间不是值字段,因此.value将不起作用。

在javascript中,您可以使用,

document.getElementsByTagName("time")[0].getAttribute("datetime");

如果您使用的是JQuery,则可以使用,

$('time').attr('datetime')

datetime基本上是时间字段的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM