簡體   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