Lua 时间格式化 os.time,os.date

os.time() 得到是当前时间的距离1970.1.1.08:00时间的秒数,如果传入的参数小于这个时间,那么就会得到一个,秒数就是负数,会得到一个空值。

年月日时分秒的格式化取值如下

os.date("%Y-%m-%d%H:%M:%S",os.time())

 输出:

2021-06-02  11:31:12

当前时间数据

os.date("*t", os.time())

返回当前时区的信息集

sec	13
isdst	false
hour	11
min	29
year	2021
month	6
wday	4
day	2
yday	153

注意使用format "*t"返回的table中wday如果是1表示星期天,而使用通用格式时%w用0表示星期天。

如果format以“!”开头,则按格林尼治时间进行格式化。

 

应用:通过传入两个时间戳,计算当前是第几天,跨天时间点为 xx

-- 返回time1和time2相差的天数 limit为每天的分割点 默认5点
function GetDaysIndexByLimit(time1, time2, limit)
    limit = limit or 5
    local _time1 = time1<time2 and time1 or time2
    local _time2 = time2>time1 and time2 or time1

    local days = 0
    local data1 = os.date("*t", _time1);
    if data1.hour < limit then
        days = days + 1
    end
    data1.hour = limit
    data1.min = 0
    data1.sec = 0
    local time1_five = os.time(data1)

    local data2 = os.date("*t", _time2);
    if data2.hour >= limit then
        days = days + 1
    end
    data2.hour = limit
    data2.min = 0
    data2.sec = 0
    local time2_five = os.time(data2)

    local d_time = os.difftime(time2_five, time1_five)/86400
    days = days + d_time
    return days
end

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值