OpenResty 内置的时间函数
OpenResty Lua About 1,569 words方法说明
Lua
中的time
、data
、difftime
函数提供了所有日期和时间的功能,但在OpenResty
中不推荐使用,因其会引发昂贵的系统调用,无法为LuaJIT JIT
编译。
文档地址:https://github.com/openresty/lua-nginx-module#ngxtoday
常用方法
str = ngx.today()
本地时间,返回yyyy-mm-dd
格式,来源于Nginx
缓存的时间(不像Lua
日期库一样产生系统调用)。
secs = ngx.time()
返回当前时间戳,来源于Nginx
缓存的时间(不像Lua
日期库一样产生系统调用)。
secs = ngx.now()
返回一个时间戳浮点数,小数部分是毫秒值。
str = ngx.localtime()
本地时间,返回yyyy-mm-dd hh:mm:ss
。
str = ngx.utctime()
UTC
时间,返回yyyy-mm-dd hh:mm:ss
。
str = ngx.cookie_time(sec)
可用作Cookie
过期时间,参数sec
是时间戳(秒级别)。
str = ngx.http_time(sec)
可用作http
的header
时间,类似(Last-Modified
头),参数sec
是时间戳(秒级别)。
sec = ngx.parse_http_time(str)
解析类似Last-Modified
中的字符串为时间戳(秒级别)。
ngx.update_time()
强制刷新Nginx
的缓存时间,此方法会产生系统调用,禁止滥用。
代码示例
ngx.say("ngx.today#" .. ngx.today() .. "<br>")
ngx.say("ngx.time#" .. ngx.time() .. "<br>")
ngx.say("ngx.now#" .. ngx.now() .. "<br>")
ngx.say("ngx.localtime#" .. ngx.localtime() .. "<br>")
ngx.say("ngx.utctime#" .. ngx.utctime() .. "<br>")
ngx.say("ngx.cookie_time#" .. ngx.cookie_time(1583484791) .. "<br>")
ngx.say("ngx.http_time#" .. ngx.http_time(1583484791) .. "<br>")
ngx.say("ngx.parse_http_time#" .. ngx.parse_http_time("Fri, 06 Mar 2020 08:53:11 GMT") .. "<br>")
--ngx.say("ngx.update_time#" .. ngx.update_time() .. "<br>")
返回
ngx.today#2020-03-06
ngx.time#1583485303
ngx.now#1583485303.969
ngx.localtime#2020-03-06 17:01:43
ngx.utctime#2020-03-06 09:01:43
ngx.cookie_time#Fri, 06-Mar-20 08:53:11 GMT
ngx.http_time#Fri, 06 Mar 2020 08:53:11 GMT
ngx.parse_http_time#1290079655
开源案例
Views: 8,299 · Posted: 2020-03-06
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...