如何在Lua中给定日期时间添加天数

时间:2017-01-04 07:44:14

标签: datetime lua

我是Lua脚本的新手。我的系统在任何时区运行,但我需要我在gmt时区的新日期和我的给定日期也在gmt。

local creation_date = "2016-05-23 07:34:19"; //(This is in GMT date)

local yearValue, monthValue, dayValue,Hourvalue,Minutevalue,secondvalue = 
string.match(creation_date, '(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)')

dayValue, monthValue, yearValue,Hourvalue,Minutevalue,secondvalue = tonumber(dayValue), tonumber(monthValue), tonumber(yearValue),tonumber(Hourvalue),tonumber(Minutevalue),tonumber(secondvalue)

expiry_date = os.date("!%Y-%m-%d %H:%M:%S",os.time{year = yearValue, month = monthValue, day = dayValue,hour = Hourvalue,minute =Minutevalue,second = secondvalue}+10*24*60*60)

现在每当我尝试打印到期日期时,都必须打印

   expiry_date ="2016-06-03 07:34:19" //(GIVEN DATE + 10 DAYS)

但不是那样打印如下

   expiry_date = "2016-06-13 12:00:00"// (Wrong Date)

我知道Lua必须具备按照我的需要以正确方式打印日期的功能,但无法从Google获取。

1 个答案:

答案 0 :(得分:2)

我注意到两件可能导致问题的事情,首先10*60*60不是10天,几秒钟,只需10秒小时 - 您可能需要10*24*60*60。第二个问题是您使用os.time的错误字段,要使用的正确字段为hourminsec

例如,

local creation_date = "2016-05-23 07:34:19" -- (This is in GMT date)

local y, m, d, Hr, Min, Sec = creation_date:match '(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)'

local exp_sec = os.time
    { year = y, month = m, day = d,
      hour = Hr, min = Min, sec = Sec } + 10*24*60*60