欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Openresty 获取今天截至的时间戳 ngx_lua 获取今天截至的时间戳

程序员文章站 2024-01-28 19:59:52
...

在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。

在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造成较大影响。推荐使用 ngx_lua 模块提供的带缓存的时间接口,如 ngx.todayngx.timengx.utctimengx.localtimengx.nowngx.http_time,以及 ngx.cookie_time 等。

ngx.today():本地时间,格式是yyyy-mm-dd,不含时分秒
ngx.localtime():本地时间,格式是yyyy-mm-dd hh:mm:ss
ngx.utctime():UTC 时间,格式是yyyy-mm-dd hh:mm:ss
ngx.time():当前的时间戳,即epoch以来的秒数
ngx.now():类似ngx.time,但返回的是浮点数,精确到毫秒
ngx.http_time():把时间戳转换为http时间格式
ngx.cookie_time():把时间戳转换为cookie时间格式
ngx.parse_http_time():解析http 时间格式,转换为时间戳

获取今天截至的时间戳

        local secs = ngx.time()+28800  -- 现在的时间戳加8小时
        local str=ngx.http_time(secs)--Tue, 09 Jul 2019 15:59:59 GMT
        local ma= string.sub(str,18,25)
        str=ngx.re.gsub(str,ma,'23:59:59')--GMT今天截至的http time
        local endTime = ngx.parse_http_time(str)-28800 --GMT8今天截至的时间戳