JAVA全系列 教程
3762个小节阅读:7089.4k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
对于 Web 服务器来说,随时能够获取正确的时间与日期是非常重要的, OpenResty 为此提供了很多时间日期相关函数,可以满足绝大多数应用场景。
这些时间日期函数不会引发昂贵的系统调用(除了 ngx.update time ),几乎没有成本,所以在我们的应用程序中应当尽量使用它们操作时间而不是 Lua 标准库里的 OS 女。
当前时间
xxxxxxxxxx
ngx.say(ngx.today()):本地时间,格式是“yyyy-mm-dd”,不含时分秒;
ngx.say(ngx.localtime()) :本地时间,格式是“yyyy-mm-dd hh : mm: ss";
ngx.say(ngx.utctime()) : UTc时间,格式是“yvyy-mm-dd hh :mm: ss”.
时间戳
获取当前的时间戳可以使用两个函数:
xxxxxxxxxx
ngx.time
ngx.now
格式化时间戳
xxxxxxxxxx
ngx.http_time:把时间戳转换为http时间格式;
ngx.cookie_time:把时间戳转换为cookie时间格式;
ngx.parse_http_time :解析http时间格式,转换为时间戳。
local secs = 1514880339 一个时间戳
ngx.say (ngx.http_time(secs)) 转换为http时间格式
ngx.say(ngx okie_time (secs)) 转换为cookie时间格式
local str = "Tue, 02 Jan 2018 08 : 05 : 39 GMT" 一个http时间格式
ngx.say (ngx.parse_http_time (str)) --转换时间戳bND
更新时间
ngx.localtime/ngx.time/ngx.now等函数获取的时间基于OpenResty内部缓存的时间,与实际时间相比可能存在微小的误差,如果想要随时获得准确的时间可以先调用函数 ngx.update_time,然后再调用时间函数,例如:
xxxxxxxxxx
ngx.update_time () --强制更新内部缓存的时间
ngx.now () --之后就可以获得更准确的时间
ngx.update_time会使用系统函数gettimeofday ()强制更新时间,成本较高,除非必要应当尽量少用。
睡眠
让程序短暂 “睡眠”是应用开发中的一个常 操作,常用来等待某项工作的完成
ngx.sleep是openResty提供的同步非阻塞的睡眠函数,可以“睡眠”任意的时间长度但不会阻塞整个服务,这时OpenResty会基于协程机制转而处理其他的请求,等睡眠时间到再“回头”继续执行ngx.sleep后续的代码。
xxxxxxxxxx
ngx.sleep(1.0)