gpt4 book ai didi

javascript - JS中的自定义日期和时间解决方案

转载 作者:行者123 更新时间:2023-12-01 17:15:29 27 4
gpt4 key购买 nike

我有这段lua代码

<script src="https://github.com/fengari-lua/fengari-web/releases/download/v0.1.0/fengari-web.js"></script>

<div>The local time in Ixnay is <span id="IxTime"></span></div>
<script type="application/lua">
local epoch = os.time{year=2014,day=1,month=1}
-- equation: x + y = 2016*365+182; x + z = 2024*365; z = y * 4
-- this assumes 4x rate past normal time
-- attempts to use 3x rate could not provide accurate results following timestamps

function conv(t)
local time = os.time(t)
local seconds_since_epoch = time - epoch
return seconds_since_epoch * 4 + epoch
end

js.global.document:querySelector("#IxTime").innerHTML = os.date(" %Y-%m-%d %H:%M:%S", conv(os.date('*t', os.time())))

</script>

由于lua的限制,Y2k38的bug导致时间不能超过2038才破解。我不太了解 javascript,但我知道它具有更强大的日期/时间机制。我已经对它进行了一些修改,但遇到了两个主要问题:

  1. 我不知道如何创造更快的时间(时间应该比 IRL 快大约 4 倍)

  2. 我似乎无法让时间从我指定的纪元时间 01/01/2014 开始

任何帮助都会很棒!

最佳答案

在 64 位操作系统下,用通常的 64 位整数构建的 Lua 不存在这个问题。
问题是:Fengari 中的整数是 32 位的,os.date() 接受整数时间,因此限制为 2k38。

解决方法:将时间偏移 4*N 年,使其低于 2038 年。

<script src="https://github.com/fengari-lua/fengari-web/releases/download/v0.1.4/fengari-web.js"></script>

<div>The local time in Ixnay: <span id="IxTime"></span></div>
<script type="application/lua">
local epoch = os.time{year=2014,day=1,month=1}

function conv(t)
local time = os.time(t)
local seconds_since_epoch = time - epoch
return seconds_since_epoch * 4.0 + epoch
end

local four_years = os.time{year=2024,day=1,month=1}
- os.time{year=2020,day=1,month=1}

local function time_to_string(seconds_since_epoch)
local k = math.max(0, math.ceil((seconds_since_epoch - math.maxinteger) / four_years))
local s = seconds_since_epoch - k * four_years
return os.date(" %%s-%m-%d %H:%M:%S", s):format(tostring(tonumber(os.date("%Y", s)) + 4*k))
end

js.global.document:querySelector("#IxTime").innerHTML = time_to_string(conv(os.date('*t')))

</script>

关于javascript - JS中的自定义日期和时间解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122035/

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