Javascript Node.js从DOM中刮取日期时间
我有一个简单的问题 我有这个HTML代码Javascript Node.js从DOM中刮取日期时间,javascript,node.js,datetime,web-scraping,Javascript,Node.js,Datetime,Web Scraping,我有一个简单的问题 我有这个HTML代码 <time datetime="2014-02-18"> 18 February 2014</time> 或 但在控制台上都返回未定义的 谢谢 (我假设您在Node或cheerio或类似的应用程序中使用jQuery。) 您可以通过attr获取字符串: var dateString = $('time').attr('datetime'); 然后用你最喜欢的方式把它转换成一个日期,确保有正确的时区。例如,你可以 var da
<time datetime="2014-02-18"> 18 February 2014</time>
或
但在控制台上都返回未定义的
谢谢 (我假设您在Node或cheerio或类似的应用程序中使用jQuery。)
您可以通过attr
获取字符串:
var dateString = $('time').attr('datetime');
然后用你最喜欢的方式把它转换成一个日期,确保有正确的时区。例如,你可以
var date = new Date(dateString);
…首先检查了Node版本中的V8版本对其所做的操作后,不幸的是,规范在其上出现了问题:
- 它在ES5之前根本没有定义
- 根据ISO-8601,如果没有时区指示器而不是本地时间,则ES5错误地将其定义为UTC,因此
本应为UTC,但:“2014-02-18”
- 这在ES2015中是固定的,因此
将被解释为当地时间,但:“2014-02-18”
- 然后在ES2016中更新,表示只有日期的表格应为UTC,日期时间表格应为当地时间,因此
应再次为UTC“2014-02-18”
因此,如果您使用V8,或者使用
新日期(年、月、日)
(对于本地时间)或新日期(Date.UTC(年、月日))
(对于UTC)自己处理它,请确保您知道您的V8副本在做什么。时间不是一个值字段,因此值将不起作用
在javascript中,您可以使用
document.getElementsByTagName("time")[0].getAttribute("datetime");
如果您使用的是JQuery,那么可以使用
$('time').attr('datetime')
datetime基本上是时间字段的一个属性。
var date=$('time').text()
@RajaprabhuAravindasamy:那将是“2014年2月18日”
,而不是OP要求的。如果下面的答案回答了您的问题,即堆栈溢出的工作方式,您将通过单击旁边的复选标记“接受”答案,第二个选项也适用于cheerio-谢谢
document.getElementsByTagName("time")[0].getAttribute("datetime");
$('time').attr('datetime')