本期主要是讲解时间戳和日期之间的转换,常用于会员激活码等时间的转换。
一、获取当前时间的时间戳
时间戳:是一个非常大数字,单位是秒,具体指北京时间1970年01月01日08时00分00秒起至现在的总秒数,(我国的北京时间是东八区时间,所以从8点计算的)
![[按键精灵]会员时间相关计算/转换的代码讲解(时间日期转成输出计算) 软件开发 [按键精灵]会员时间相关计算/转换的代码讲解(时间日期转成输出计算) 软件开发](http://www.riosart.com/zb_users/upload/2024/07/20240724121418172179445851849.jpeg)
TracePrint time()
输出结果
1709456541
二、日期转化成时间戳
时间戳是以秒数为单位,日期转化成时间戳,其实就是把年月日时分秒转成秒,这个转化的目的是为了把多个单位(年月日时分秒)转成单一的秒,这样就可以方便做算数运算了。
Import "zm.luae"zm.InitTracePrint zm.Timestamp("2024-3-3 17:11:00")
三、秒转化成天
把10000000秒转化成天,代码如下:
Import "shanhai.lua"TracePrint ShanHai.SecToDay(10000000)
输出结果
115天17小时46分40秒
四、时间戳转成日期
这个其实也是“秒”转成日期,不过时间戳可以是当前时间的时间戳,也可以是“过去”或者“未来”某个时间点的时间戳。
当前时间的时间戳转成日期
Traceprint DateTime.Format("%Y-%m-%d %H:%M:%S",time())
1000秒前的日期
Traceprint DateTime.Format("%Y-%m-%d %H:%M:%S",time()-1000)
1000秒后的日期
Traceprint DateTime.Format("%Y-%m-%d %H:%M:%S",time()+1000)
五、实际应用
计算会员到期时间:
(1)比如在数据库中存储到期时间(时间戳)是 1712050000,想在屏幕上输出会员到期的日期。
Traceprint DateTime.Format("%Y-%m-%d %H:%M:%S","1712050000")
输出结果:
2024-04-02 17:26:40
计算会员剩余时间:
Import "shanhai.lua"TracePrint ShanHai.SecToDay("1712050000"-time())
输出结果:
29天23小时51分38秒
(2)以日期形式存储在数据库,如:2024-04-02 17:26:40
计算剩余天数:
Import "shanhai.lua"Import "zm.luae"zm.Initdim t = zm.Timestamp("2024-04-02 17:26:40")TracePrint ShanHai.SecToDay(t-time())