Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 从unix时间戳获取小时数_Lua_Timestamp - Fatal编程技术网

Lua 从unix时间戳获取小时数

Lua 从unix时间戳获取小时数,lua,timestamp,Lua,Timestamp,如何从linux时间戳中获取当前小时?我可以得到年、月、日、分、秒,但不能得到小时。有什么帮助吗 当前代码: local secondsPassed = os ~= nil and os.time() or tick() local year = 1970 + math.floor(secondsPassed / (86400 * 365.25)) local days = math.floor((secondsPassed % (365.25 * 86400)) / 86400) days =

如何从linux时间戳中获取当前小时?我可以得到年、月、日、分、秒,但不能得到小时。有什么帮助吗

当前代码:

local secondsPassed = os ~= nil and os.time() or tick()
local year = 1970 + math.floor(secondsPassed / (86400 * 365.25))
local days = math.floor((secondsPassed % (365.25 * 86400)) / 86400)
days = days + (year - 2011)
local minutes = math.floor((secondsPassed % 3600) / 60)
local seconds = math.floor(secondsPassed % 60)
破碎的:

local hours = math.floor((secondsPassed % 86400) / 3600)-- +1

这里有几个问题:

  • UNIX时间相对于GMT 1970-01-01午夜。如果您不在GMT,您将看到一个取决于时区的偏移量。如果您所在地区遵守夏令时,此偏移量将根据日期以可能相当复杂的方式变化

  • 一年不是365.25天。根据年份,它们可以是365天或366天。(平均值甚至没有达到365.25;由于年份的特殊情况可以被100和400整除,平均值达到365.2425。)


除非出于某种原因您不能使用Lua,否则我强烈建议您这样做,而不是尝试自己重新创建它们。

这里有几个问题:

  • UNIX时间相对于GMT 1970-01-01午夜。如果您不在GMT,您将看到一个取决于时区的偏移量。如果您所在地区遵守夏令时,此偏移量将根据日期以可能相当复杂的方式变化

  • 一年不是365.25天。根据年份,它们可以是365天或366天。(平均值甚至没有达到365.25;由于年份的特殊情况可以被100和400整除,平均值达到365.2425。)


除非出于某种原因您不能使用Lua,否则我强烈建议您这样做,而不是尝试自己重新创建它们。

您非常接近。到目前为止,我认为:


当地时间=数学楼层((第二空间为%86400)/1440)+1

你非常接近。到目前为止,我认为:


当地时间=数学地板((秒数%86400)/1440)+1

如果你的天数正确,那么你的时/分/秒怎么可能被打破,因为它们都依赖于秒数?唯一被打破的是小时如果你的天数正确,那么,你的时/分/秒怎么可能被打破,因为它们都依赖于秒?唯一被打破的是小时。因此,如果我不加/减我的时区,它似乎是错误的?我会使用操作系统的日期和时间模块,但不允许您使用它们;不考虑时区肯定会给你错误的时间。不过,我提到的其他问题也同样适用。因此,如果我不加/减我的时区,这似乎是错误的?我会使用操作系统的日期和时间模块,但不允许您使用它们;不考虑时区肯定会给你错误的时间。不过,我提到的其他问题也将适用。