Google 在 GoogleCalendar HTML 中为每一天使用一个唯一的 DateKeys,例如
<div
data-datekey="129"
role="gridcell"
tabindex="-1"
jsname="RjPD4e"
aria-labelledby="tsc-0"
data-column-index="0"
data-principal-ids="amFuLm5pY2tsYXNAbmFtaWNzLmNvbQ"
class="YvjgZe Qbfsob">
是否有任何公式来计算给定日期键的日期?
最佳答案
它看起来像 dateKey
表示自 1.1.1970
以来的天数以针对字节移位优化的格式。
一年有2^9
(512
) 天。
一个月有2^5
(32
) 天。
计算 datekey
对于 01.01.1970
你会计算:
0
years (since 1970)* 512
+ 1
month* 32
+ 1
day
= 33
计算
datekey
对于 01.01.2000
你会计算:
30
years (since 1970)* 512
+ 1
month* 32
+ 1
day
= 15393
要计算给定日期键的日期,您可以执行相反的操作。
模计算可能如下所示:
function getDate(dateKey) {
const yearOffset = (dateKey - 32) % 512;
const year = (dateKey - 32 - yearOffset) / 512;
const day = yearOffset % 32;
const month = (yearOffset - day) / 32;
return new Date(year + 1970, month, day);
}
有谁知道他们为什么想出这样的逻辑?
关于javascript - 谷歌日历日期键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58080616/