将 unix 时间转换为月数?
Convert unix time to month number?
使用 os.time
我如何获得自 unix 纪元(Unix 时间戳)以来已经过去了多少个月
我只需要一个月份ID,所以任何数字都可以,只要它每个月都变化,并且可以倒过来得到实际的月份。
这可能会奏效:
print (os.date("*t",os.time())["month"])
os.time()
以数字形式给出当前日期。 os.date("*t",...)
将其转换为 table,其中 month
等于与日期对应的月份数。
local function GetMonth(seconds)
local dayduration,year = 3600*24
local days={31,0,31,30,31,30,31,31,30,31,30,31}
for i=1970,10000 do -- For some reason too lazy to use while
local yeardays = i%4 == 0 and i%100 ~= 0 and 366 or 365
local yearduration = dayduration * yeardays
if yearduration < seconds then
seconds = seconds - yearduration
else
year = i break
end
end
days[2]=(year%4==0) and 29 or 28
seconds = seconds%(365*24*3600)
for i=1,12 do
if seconds>days[i]*dayduration then
seconds=seconds-days[i]*dayduration
else
return --i + year*12 <-- If you want a unique ID
end
end
end
目前,它会给出数字 2,因为现在是二月。如果您取消注释最后的唯一 ID 代码,您将得到 554,这意味着我们目前处于自纪元以来的第 554 个月。
正如 Jean-Baptiste Yunès 在其回答的评论中所说,我不确定您的句子是否:
NOTE: This is for Lua, but I'm unable to use os.date
表示您没有os.date,或者您不知道如何使用它。这两种情况你都有答案,你可以使用你需要的那个。
使用 os.time
我如何获得自 unix 纪元(Unix 时间戳)以来已经过去了多少个月
我只需要一个月份ID,所以任何数字都可以,只要它每个月都变化,并且可以倒过来得到实际的月份。
这可能会奏效:
print (os.date("*t",os.time())["month"])
os.time()
以数字形式给出当前日期。 os.date("*t",...)
将其转换为 table,其中 month
等于与日期对应的月份数。
local function GetMonth(seconds)
local dayduration,year = 3600*24
local days={31,0,31,30,31,30,31,31,30,31,30,31}
for i=1970,10000 do -- For some reason too lazy to use while
local yeardays = i%4 == 0 and i%100 ~= 0 and 366 or 365
local yearduration = dayduration * yeardays
if yearduration < seconds then
seconds = seconds - yearduration
else
year = i break
end
end
days[2]=(year%4==0) and 29 or 28
seconds = seconds%(365*24*3600)
for i=1,12 do
if seconds>days[i]*dayduration then
seconds=seconds-days[i]*dayduration
else
return --i + year*12 <-- If you want a unique ID
end
end
end
目前,它会给出数字 2,因为现在是二月。如果您取消注释最后的唯一 ID 代码,您将得到 554,这意味着我们目前处于自纪元以来的第 554 个月。
正如 Jean-Baptiste Yunès 在其回答的评论中所说,我不确定您的句子是否:
NOTE: This is for Lua, but I'm unable to use os.date
表示您没有os.date,或者您不知道如何使用它。这两种情况你都有答案,你可以使用你需要的那个。