精华内容
下载资源
问答
  • lua日期处理函数

    2019-07-31 10:07:00
    function day_step(old_day,step) local y,m,d if("0" ~= string.sub(old_day,6,6)) then m=string.sub(old_day,6,7) else m=string.sub(old_day,7,7) end if("0" ~= string.sub(old_day,9,9))...


    function day_step(old_day,step)
       local y,m,d
       if("0" ~= string.sub(old_day,6,6)) then
          m=string.sub(old_day,6,7)
       else
          m=string.sub(old_day,7,7)
       end

       if("0" ~= string.sub(old_day,9,9)) then
          d=string.sub(old_day,9,10)
       else
          d=string.sub(old_day,10,10)
       end

       y=string.sub(old_day,0,4)
       
       local old_time=os.time{year=y,month=m,day=d}
       local new_time=old_time+86400*step

       local new_day=os.date("*t",new_time)
       local res=""

       if(tonumber(new_day.day)<10 and tonumber(new_day.month)<10)then
          res=new_day.year.."-".."0"..new_day.month.."-".."0"..new_day.day
       elseif tonumber(new_day.month)<10 then
          res=new_day.year.."-".."0"..new_day.month.."-"..new_day.day
       
       elseif tonumber(new_day.day)<10 then
          res=new_day.year.."-"..new_day.month.."-".."0"..new_day.day
       else
          res=new_day.year.."-"..new_day.month.."-"..new_day.day
       end
       return res
    end

    转载于:https://www.cnblogs.com/yanzi-meng/p/11274438.html

    展开全文
  • lua 日期的一些函数

    2018-04-23 16:23:00
    --根据日期获取星期几 function getWeekNum(strDate) local ymd = Split(strDate,"-") t = os.time({year=tostring(ymd[1]),month=tostring(ymd[2]),day=tostring(ymd[3])}) local weekNu...
    --根据日期获取星期几
    function getWeekNum(strDate)
        local ymd = Split(strDate,"-")
        t = os.time({year=tostring(ymd[1]),month=tostring(ymd[2]),day=tostring(ymd[3])})
        local weekNum = os.date("*t",t).wday  -1
        if weekNum == 0 then
            weekNum = 7
        end
        return weekNum
    end

    ngx.say(getWeekNum("2018-04-25"))

     

    --根据一个日期获取下几天,dayChange参数为下几天
    function getNextDay(strDate,dayChange)
        local _startDate = Split(startDate,"-")    
        local time=os.time({year=tostring(_startDate[1]), month=tostring(_startDate[2]), day=tostring(_startDate[3])})+dayChange*86400 --一天86400秒
        return (os.date('%Y',time).."-"..os.date('%m',time).."-"..os.date('%d',time))    
    end

    ngx.say(getNextDay("2018-04-25", 1))

     

    --计算一个时间段中有几天
    function getDays(startDate, endDate)
        local startDateTab = Split(startDate,"-")
        local endDateTab = Split(endDate,"-")    
        numDay1 = os.time({year=tostring(startDateTab[1]), month=tostring(startDateTab[2]), day=tostring(startDateTab[3])})
        numDay2 = os.time({year=tostring(endDateTab[1]), month=tostring(endDateTab[2]), day=tostring(endDateTab[3])})    
        return (numDay1-numDay2)/(3600*24)+1;
    end

    ngx.say(getDays("2018-04-25", "2018-04-20"))

     

    --遍历一个值是否在数组中
    function IsInTable(value, tbl)
            for k,v in ipairs(tbl) do
                    if v == value then
                            return true;
                    end
            end
            return false;
    end

     

    --获取前10分钟
    ngx.print(os.date("%Y%m%d%H%M%S",os.time()-600))

     

    展开全文
  • lua的时间和日期函数

    2015-10-30 11:13:00
    lua的时间和日期函数 2012-08-27 10:01:32| 分类: Lua | 标签:lua 时间 函数 |举报|字号 订阅 下载LOFTER客户端 --获取当前的时间戳,单位是秒。 time=os.time(); print(time); --获得当前的时间...
    lua的时间和日期函数  
    
    2012-08-27 10:01:32|  分类: Lua |  标签:lua  时间  函数   |举报|字号 订阅
        
    下载LOFTER客户端
    --获取当前的时间戳,单位是秒。
    time=os.time();
    print(time);
    
    --获得当前的时间table,有year,month,day,hour,min,sec等元素。
    tab=os.date("*t",time); --或直接tab=os.date("*t"); --tab是table的简写。
    print(tab.year, tab.month, tab.day, tab.hour, tab.min, tab.sec);
    
    --获得当前的时间字符串,形如"08/27/12"。
    str=os.date("%x",time); --或直接使用str=os.date("*x");
    print(str);
    
    参考:
    os库-时间函数:http://blog.csdn.net/kanelu/article/details/4678903

     

    转载于:https://www.cnblogs.com/archoncap/p/4922754.html

    展开全文
  • Lua日期和时间函数详解

    万次阅读 2017-08-22 19:08:43
    最近在做Lua脚本的时候,用到了Lua日期和时间函数,发现其功能强大,学习一下!在Lua中,函数time和 data提供了所有的日期和时间的功能,下面将这两个函数分开学习。 time函数: 如果不带任何参数调用time,它会...

    最近在做Lua脚本的时候,用到了Lua的日期和时间函数,发现其功能强大,学习一下!在Lua中,函数time和data提供了所有的日期和时间的功能,下面将这两个函数分开学习。

     

    time函数:

     

    如果不带任何参数调用time,它会返回一个数字,表示当前的日期和时间,改数字为某一时刻到此刻的秒数。
    如: local current_time = os.time(); -- 返回的结果可能是 1503365680 这样一串数字

    time还可以用一个table作为一个参数调用它,它会返回从某一时刻都table中时刻的秒数,table参数内容
    year   一个完整的年份
    month 01 - 12
    day 01 - 31
    hour 00 - 23
    min 00 - 59
    sec 00 - 59
    isdst 一个布尔值,true表示夏令时
    其中年月份必须填写,不可省略,后面的其他字段可填可不填。
    思考:既然只需要填写年月日就可以获得一个时刻都年月日的秒数,那么lua默认表中的时分秒为多少呢?
    于是笔者做了以下测试:
    local time1 = os.time{year = 2000, month = 1, day = 1};
    print(time1); -- 结果为946 699 200
    local time2 = os.time{year = 2000, month = 1, day = 1, hour = 12};
    print(time2); -- 结果为946 699 200
    local time3 = os.time{year = 2000, month = 1, day = 1, hour = 12, min = 1};
    print(time3); -- 结果为946 699 260
    local time4 = os.time{year = 2000, month = 1, day = 1, hour = 12, min = 1, sec = 1};
    print(time4); -- 结果为946 699 261
    通过测试可以看出,Lua中当你参数table值填年月日时,Lua默认hour = 12, min = 0, sec = 0
     

    data函数:

     

    函数data是time的一个反函数,它可以将一个表示日期和时间的数字转换成某些高级的表现形式。
    该函数有两个参数:
    第一个参数为格式字符串,指定了期望的表示形式;
    第二个参数是日期和时间的数字,默认为当前日期和时间。<可不填>
    其中第一个参数中,date函数支持以下这些格式:
    %a 一个星期中天数的简写(如:Wed) 
    %A 一个星期中天数的全称(如: Wednesday) 
    %b 月份的简写(如: Sep) 
    %B 月份的全称(如:September) 
    %c 日期和时间(如: 08/22/2017 10:50:05) 
    %d 一个月中的第几天(22) [0 - 31] 
    %H 24小时中的小时数(15) [0 - 23]  
    %I 12小时中的小时数(8)[1 - 12]  

    %j 一年中的第几天(259)[1 - 366]   

    %M 分钟数 (48) [0 - 59] 

    %m 月份数 (09) [1 - 12] 
    %p "上午(am)"或"下午(pm)" (如: pm) 
    %S 秒数(10) [0 - 59] 
    %w 一个星期中的第几天(3) [0 - 6 周天-周六] 
    %x 日期(如:08/22/17) 
    %X 时间(如:10:50:05) 
    %y 两位数的年份(17) [00 - 99] 
    %Y 完整的年份(2017) 
    %% 字符'%' 

    除了以上格式外,data函数还阔以通过字符串"*t",其返回一个table如
    local date = os.date("*t", os.time());
    --结果为date = {year = 2017, month = 8, day = 22, yday = 234, wday = 3,

    hour = 10, min = 46, sec = 52, isdst = false}

     

    应用:

    我们在Lua中经常会用到这两个函数来格式化我们的日期和时间,然后在自由组合自己想要的格式,下面来写几个接口实践下:

     

    local fmt_date = function(year, month, day, fmt)
    	if (fmt == "DD/MM/YY") then
    		return string.format("%02d/%02d/%02d", day, month, year);
    	elseif (fmt == "MM/DD/YY") then
    		return string.format("%02d/%02d/%02d", month, day, year);
    	else
    		return string.format("%02d/%02d/%02d", year, month, day);
    	end
    end
    
    local fmt_hms = function(hour, min, sec, TIME_24H_Flag)	
    	if (nil ~= sec) then
    		assert((nil ~= hour) and (nil ~= min));
    		
    		if (TIME_24H_Flag) then
    			return string.format("%02d:%02d:%02d", hour, min, sec);
    		else
    			local h = math.floor(tonumber(hour));
    			
    			if (h < 12) then
    				if (0 == h) then h = 12; end
    				return string.format("%02d:%02d:%02d AM", h, min, sec);
    			else
    				if (12 == h) then h = 24; end
    				return string.format("%02d:%02d:%02d PM", h-12, min, sec);
    			end
    		end
    	elseif (nil ~= min) then
    		assert(nil ~= hour);
    		
    		if (TIME_24H_Flag) then
    			return string.format("%02d:%02d", hour, min);
    		else
    			local h = math.floor(tonumber(hour));
    			
    			if (h < 12) then
    				if (0 == h) then h = 12; end
    				return string.format("%02d:%02d AM", h, min);
    			else
    				if (12 == h) then h = 24; end
    				return string.format("%02d:%02d PM", h-12, min);
    			end
    		end
    	else
    		assert(nil ~= hour);
    		
    		if (TIME_24H_Flag) then
    			return string.format("%02d", hour);
    		else
    			local h = math.floor(tonumber(hour));
    			
    			if (h < 12) then
    				if (0 == h) then h = 12; end
    				return string.format("%02d:00 AM", h);
    			else
    				if (12 == h) then h = 24; end
    				return string.format("%02d:00 PM", h-12);
    			end
    		end
    	end
    end
    
    local fmt_time = function(wday_flag, year, mon, mday, hour, min, sec)
    	if ((nil ~= year) and (nil ~= mon) and (nil ~= mday) and (nil ~= hour) and (nil ~= min) and (nil ~= sec)) then
    		if (("boolean" == type(wday_flag)) and (wday_flag)) then
    			local week = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    			local w = os.date("%w", os.time{year=year, month=mon, day=mday});
    			local day = math.floor(tonumber(w)) + 1;
    			
    			return string.format("%s %s %s", fmt_date(year, mon, mday), fmt_hms(hour, min, sec), week[day]);
    		else
    			return string.format("%s %s", fmt_date(year, mon, mday), fmt_hms(hour, min, sec));
    		end
    	end
    	
    	if ((nil ~= year) and (nil ~= mon) and (nil ~= mday) and (nil == hour) and (nil == min) and (nil == sec)) then
    		if (("boolean" == type(wday_flag)) and (wday_flag)) then
    			local week = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    			local w = os.date("%w", os.time{year = year, month = mon, day = mday});
    			local day = math.floor(tonumber(w)) + 1;
    			
    			return string.format("%s %s", fmt_date(year, mon, mday), week[day]);
    		else
    			return string.format("%s", fmt_date(year, mon, mday));
    		end
    	end
    	
    	if ((nil == year) and (nil == mon) and (nil == mday) and (nil ~= hour) and (nil ~= min)) then
    		return string.format("%s", fmt_hms(hour, min, sec));
    	end
    end
    
    --测试
    local time = os.date("%Y/%m/%d %H:%M:%S", os.time());
    local year, mon, mday, hour, min, sec = string.match(time, "(%d+)/(%d+)/(%d+) (%d+):(%d+):(%d+)");
    print(fmt_time(false, year, mon, mday));  --2017/08/22
    print(fmt_time(false, nil, nil, nil, hour, min, sec)); --11:09:13 AM

     

     

     

     

     

     

    展开全文
  • Lua函数

    2019-04-14 23:24:32
    创建日期:2019-04-14 函数 函数有一个修饰符local 定义一个函数 function max(num1,num2) if(num1>num2) then return num1 else return num2 end end 调用一个函数 print(max(10,20))--20 ...
  • lua os函数

    2016-01-26 14:56:58
    os.date (format[,time]])返回一个字符串或者一个包含日期和时间的表,格式由format给定。 如果给出time参数,格式化输出time描述的时间(看|os.time|),否则data格式化当 前时间。 如果format开始于’!’,日期...
  • time和date两个函数Lua中实现所有的时钟查询功能。函数time在没有参数时返回当前时钟的数值。(在许多系统中该数值是当前距离某个特定时间的秒数。)当为函数调用附加一个特殊的时间表时,该函数就是返回距该表描述...
  • LUA 日期处理

    2019-09-24 08:15:13
    time和date两个函数Lua中实现所有的时钟查询功能。函数time在没有参数时返回当前时钟的数值。(在许多系统中该数值是当前距离某个特定时间的秒数。)当为函数调用附加一个特殊的时间表时,该函数就是返回距该表...
  • Lua日期和时间

    2020-04-17 20:12:47
        Lua语言的标准库提供了两个用于操作日期和时间的函数,这两个函数在C语言标准库中也存在,提供的是同样的功能。虽然这两个函数看上去很简单,但依旧可以基于这些简单的功能完成很多复杂的工作。     Lua...
  • 最近的工作是要求写一个任务系统,需要在特定日期重置任务,或者在天数后重置任务。 这就延伸出一个问题,如何得知条件天数后的日期。... 其实lua的时间函数十分强大,可以用以下方法: 1.算出当时间,以表表...
  • lua 时间函数os.time()和os.date()

    千次阅读 2018-11-21 19:48:21
    解释:返回一个按format格式化日期、时间的字串或表。 usage## 参数格式: 由原型可以看出可以省略第二个参数也可以省略两个参数,只省略第二个参数函数会使用当前时间作为第二个参数,如果两个参数都省略则按...
  • lua时间戳和日期转换及踩坑介绍lua日期函数常用方法及我的一个踩坑。时间戳转日期#Copyos.date("%Y%m%d%H",unixtime)--os.date("%Y%m%d%H",1534435200) 2018081700日期转时间戳#Copy---指定日期的时间戳os.time({...
  • 获得前一天的日期函数 1 function day_step(old_day,step) 2 local y,m,d 3 if("0" ~= string.sub(old_day,6,6)) then 4 m=string.sub(old_day,6,7) 5 else 6 m=string.sub(old_day...
  • 介绍lua日期函数常用方法及我的一个踩坑。时间戳转日期os.date("%Y%m%d%H",unixtime)--os.date("%Y%m%d%H",1534435200) 2018081700日期转时间戳---指定日期的时间戳os.time({day=17, month=8, year=2018, hour=0, ...
  • lua指定日期前后天数的日期

    千次阅读 2016-12-09 13:40:34
    网上lua的源码很少,知识也很少,最近做一个功能校验日期格式时,需要知道日期是否连续,即是指定日期前后几天的日期。 原理是获取指定日期到标准日期的秒数,然后加减日期的天数的秒数,在根据标准日期转换为想要...
  • lua中的时间函数

    2019-09-15 15:47:31
    -- 获取当前的格林尼治时间 print(os.time()) -- 获取当前时间的字符串表示,形如:11/28/08 10:28:37 print(os.date()) ... -- 获取当前日期的字符串表示,形如:11/28/08 print(os.dat...
  • Lua的time相关函数

    2016-03-08 11:44:35
    time函数– 获取当前的格林尼治时间 os.time() – 获取当前时间的字符串表示 示例:11/28/08 10:28:37os.date() – 获取当前日期的字符串表示 示例:11/28/08os.date(“%x”, os.time()) – 获取当前时间的字符...
  • os.date函数定义 原型:os.date ([format [, time]]) 解释:返回一个按format格式化日期、时间的字串或表。 lua源码中os.date的注释如下: --- --- Returns a string or a table containing date and time, ...
  • -----lua函数os.time源码见 loslib.c 中的 int os_time (lua_State *L)lua中无参数调用:os.time()直接返回time(NULL),即UNIX时间戳,也即UTC时间 1970-01-01 00:00:00 至今的秒数lua中有参数调用:os.time({year=,...
  • 介绍lua日期函数常用方法及我的一个踩坑。 时间戳转日期 os.date("%Y%m%d%H",unixtime) --os.date("%Y%m%d%H",1534435200) 2018081700 日期转时间戳 ---指定日期的时间戳 os.time({day=17, month=8, year=2018, ...

空空如也

空空如也

1 2 3 4 5
收藏数 95
精华内容 38
关键字:

lua日期函数