openresty开发系列20--lua的时间操作
openresty开发系列20--lua的时间操作
在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。
在 OpenResty 的世界里,不推荐使用这里的标准时间函数,
因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造成较大影响。
推荐使用 ngx_lua 模块提供的带缓存的时间接口,
如 ngx.today, ngx.time, ngx.utctime, ngx.localtime, ngx.now, ngx.http_time,以及 ngx.cookie_time 等。
一)os.time ([table])
它会返回当前的时间和日期的时间戳(精确到秒),如赋值table,表示此table指定日期的时间戳
字段名称 取值范围
year 四位数字
month 1--12
day 1--31
hour 0--23
min 0--59
sec 0--59
isdst boolean(true表示夏令时)
对于 time 函数,如果参数为 table,那么 table 中必须含有 year、month、day 字段。
其他字缺省时段默认为中午(12:00:00)。
print(os.time())
a = { year = 2018, month = 1, day = 30, hour = 0, min = 0, sec = 0 }
print(os.time(a))
时间戳的是以计算机最小时间和指定时间之间相差的秒数,计算机最小时间为1970-1-1 00:00:00(美国时区),
针对中国时区就是1970-1-1 08:00:00
a = { year = 1970, month = 1, day = 1, hour = 8, min = 0, sec = 1 }
print(os.time(a))
输出的就是1秒
二)os.difftime (t2, t1)
返回 t1 到 t2 的时间差,单位为秒。
local day1 = { year = 2018, month = 1, day = 30 }
local t1 = os.time(day1)
local day2 = { year = 2018, month = 1, day = 31 }
local t2 = os.time(day2)
print(os.difftime(t2, t1))
--->output:86400
三)os.date ([format [, time]])
把一个表示日期和时间的数值,转换成更高级的表现形式。
格式字符 含义
%a 一星期中天数的简写(例如:Wed)
%A 一星期中天数的全称(例如:Wednesday)
%b 月份的简写(例如:Sep)
%B 月份的全称(例如:September)
%c 日期和时间(例如:07/30/15 16:57:24)
%d 一个月中的第几天[01 ~ 31]
%H 24小时制中的小时数[00 ~ 23]
%I 12小时制中的小时数[01 ~ 12]
%j 一年中的第几天[001 ~ 366]
%M 分钟数[00 ~ 59]
%m 月份数[01 ~ 12]
%p "上午(am)"或"下午(pm)"
%S 秒数[00 ~ 59]
%w 一星期中的第几天[0 ~ 6 = 星期天 ~ 星期六]
%x 日期(例如:07/30/15)
%X 时间(例如:16:57:24)
%y 两位数的年份[00 ~ 99]
%Y 完整的年份(例如:2015)
%% 字符'%'
print(os.date("today is %A, in %B"))
print(os.date("now is %x %X"))
print(os.date("%Y-%m-%d %H:%M:%S"))
-->output
today is Thursday, in July
now is 07/30/15 17:39:22
2018-03-29 22:36:05
---------------------------
t = os.date("*t", os.time());
for i, v in pairs(t) do
print(i, v);
end
yday 120 --一年中的第几天,一月一日为1
month 4
sec 9
min 9
hour 16
day 30
year 2018
isdst false --是否夏令时
wday 2 --一周第几天 星期日为1
转载于:https://www.cnblogs.com/reblue520/p/11433795.html
openresty开发系列20--lua的时间操作相关推荐
- openresty开发系列27--openresty中封装redis操作
openresty开发系列27--openresty中封装redis操作 在关于web+lua+openresty开发中,项目中会大量操作redis, 重复创建连接-->数据操作-->关闭 ...
- openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息
openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...
- openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串. prin ...
- openresty开发系列39--nginx+lua实现接口签名安全认证
一)需求背景 现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全, 我们先看看有哪些安全性的问题 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性( ...
- openresty开发系列38--通过Lua+Redis 实现动态封禁IP
openresty开发系列38--通过Lua+Redis 实现动态封禁IP 一)需求背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝 ...
- openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysql Mysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? ...
- openresty开发系列24--openresty中lua的引入及使用
openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua ---> ...
- openresty开发系列19--lua的table操作
openresty开发系列19--lua的table操作 Lua中table内部实际采用哈希表和数组分别保存键值对.普通值:下标从1开始 不推荐混合使用这两种赋值方式. local color={fi ...
- openresty开发系列23--lua面向对象
openresty开发系列23--lua面向对象 面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构. java,c++,.net等都支持面向 ...
最新文章
- php过滤手机特殊字符,php过滤特殊字符实用函数
- js title 单选框 获取_js简单获取表单中单选按钮值的方法
- unitywebrequest本地加载_Unity AudioSource加载本地.mp3文件/UnityWebRequest
- php oracle视图,Oracle v$database视图分析
- Python学习之路20-数据模型
- 加速 SpringBoot 应用开发,官方热部署神器真带劲!
- winfrom下,如何实现类似QQ右下角弹出新闻
- button点击事件不响应的解决方法(子视图大小超过父视图)
- python模块-time,datatime
- 多个生产者多个消费者,只有5个包子
- 对Librehash海洋协议审查的回应
- 最历害的硬盘修复工具PC3000,可重置SMART状态!
- tkmybatis能连接oracle吗,《放弃Mybatis使用tkMybatis》
- 扫码点餐小程序有哪些优势
- 离散分布的分布函数_数据分析|概率分布
- Go 语言开发工具 LiteIDE x22 发布
- IDEA高级使用教程
- Oracle调优总结--1(经典实践 重要)
- 玻纤效应对skew的影响(一)
- matlab画图颜色属性
热门文章
- 基于正态分布的图片高斯模糊算法
- MyBatis入门和全局配置文件介绍
- springMVC的@RequestParam是必须滴
- P1464 Function(递归式的记忆化搜索)
- 中科大量子计算机重大突破,中国科大在量子计算研究中获重大突破
- linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
- python性能测试模块_python模块介绍- multi-mechanize 通用的性能测试工具
- more 目录linux,linux(二)目录结构、文件基本操作cat\more\less、环境变量、文件搜索...
- java区分不同的excel_Java处理excel两种不同的方式
- javaweb开发后端常用技术_Web后端开发(11)——Session会话技术