gpt4 book ai didi

javascript - javascript 中的日期与页面源不同

转载 作者:行者123 更新时间:2023-12-03 09:43:52 26 4
gpt4 key购买 nike

如果我查看this website的页面源码有一段 HTML 看起来像:

<tr>
<td class="start-time text-right">2020-01-05T16:30:00Z</td>
<td>Pre-Show</td>
<td>Tech Crew</td>
<td rowspan="2" class="visible-lg text-center"> <i class="fa fa-clock-o text-gdq-red" aria-hidden="true"></i>
0:10:00 </td>
</tr>

如果我使用 javascript 获取 start-time 类的 innerText,那么我将获取字符串“10:30 AM”。
这并不奇怪,因为它与浏览器中显示的内容相同:
Displayed text

但是如何获取原始的大时间戳并将其转换为日期对象呢?

最佳答案

为了获得日期对象,我们需要日、月、年、24 小时格式的时间和时区

查看您提供的链接,我可以看到他们在 .day-split 中提供了日期,因此通过一些简单的文本操作,我们能够提取所需的信息。

Javascript:

//data scaped from website::
var date = "Sunday, January 5th"; //from inside .day-split
var time = "10:30 AM"; // from inside .start-time
var timezone = "(detected as UTC+02:00)"; // from span #offset-detected

//data extraction and cleanup::
var day = parseInt(date.split(" ")[2]);
var month = date.split(" ")[1];
var year = new Date().getFullYear();
var time = convertTo24Hour(time)
var timezone = timezone.split(" ")[2].replace(")","")

// building the string and parsing it::
var dateString = [day, month, year, time, timezone].join(" ");
var dateObj = new Date(dateString);

// loging the output::
console.log(dateObj)

// a function used to convert time format (12H -> 24H)::
function convertTo24Hour(time) {
var hours = parseInt(time.substr(0, 2));
if (time.indexOf('AM') != -1 && hours == 12) {
time = time.replace('12', '0');
}
if (time.indexOf('PM') != -1 && hours < 12) {
time = time.replace(hours, (hours + 12));
}
return time.replace(/( AM| PM)/, '');
}

我的回答假设您已经知道如何从网站上抓取数据。

关于javascript - javascript 中的日期与页面源不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59593265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com