计算机系统应用教程网站

网站首页 > 技术文章 正文

[按键精灵]会员时间相关计算/转换的代码讲解

btikc 2024-12-12 10:56:32 技术文章 32 ℃ 0 评论

前言

本期主要是讲解时间戳和日期之间的转换,常用于会员激活码等时间的转换。

一、获取当前时间的时间戳

时间戳:是一个非常大数字,单位是秒,具体指北京时间1970年01月01日08时00分00秒起至现在的总秒数,(我国的北京时间是东八区时间,所以从8点计算的)

TracePrint time()

输出结果

1709456541


二、日期转化成时间戳

时间戳是以秒数为单位,日期转化成时间戳,其实就是把年月日时分秒转成秒,这个转化的目的是为了把多个单位(年月日时分秒)转成单一的秒,这样就可以方便做算数运算了。

Import "zm.luae"
zm.Init
TracePrint 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.Init
dim t = zm.Timestamp("2024-04-02 17:26:40")
TracePrint ShanHai.SecToDay(t-time())

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表