lua中关于时间的总结

原创 2016年08月30日 11:57:57

在项目的开发过程中,难免会对时间进行处理,下面对关于时间的知识进行总结一下:
1.lua中自带的os库
os.time ([table]) 函数按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段

print(os.time());   --得到当前的时间
-->1249887340
print(os.time({year=1970, month=1, day=1, hour=0}));
-->10500

os.date ([format [, time]])
功能:返回一个按format格式化日期、时间的字串或表
若设置time参数,则按time指定的时间格式化,否则按当前时间格式化

参数format::
“!”:按格林尼治时间进行格式化。
  “*t”:将返一个带year(4位),month(1-12), day (1–31), hour (0-23), min (0-59), sec (0-61), wday (星期几, 星期天为1), yday (年内天数), and isdst (是否为日光节约时间true/false)的带键名的表; 若没有”*t”则返回一个按C的strftime函数格式化的字符串
若不带参数,则按当前系统的设置返回格式化的字符串 os.date() <=> os.date(“%c”)

t = os.date("*t", os.time()); --得到的是当前的时间,第二个参数默认也是当前的时间
for i, v in pairs(t) do
      print(i, v);
end
--最后得到年月日等数据,

对于其它的格式字符串,os.date会将日期格式化为一个字符串

print(os.date("today is %A, in %B"))      -->today is Tuesday, in May
print(os.date("%x", 906000490))           -->09/16/1998

所有格式化字符串:
%a 一星期中天数的简写 (Wed)
%A 一星期中天数的全称 (Wednesday)
%b 月份的简写 (Sep)
%B 月份的全称 (September)
%c 日期和时间 (09/16/98 23:48:10)
%d 一个月中的第几天 (16)[0 ~ 31]
%H 24小时制中的小时数 (23)[00 ~ 23]
%I 12小时制中的小时数 (11)[01 ~ 12]
%j 一年中的第几天 (259)[01 ~ 366]
%M 分钟数 (48)[00 ~ 59]
%m 月份数 (09)[01 ~ 12]
%P “上午(am)” 或 “下午(pm)” (pm)
%S 秒数 (10)[00 ~ 59]
%w 一星期中的第几天 (3)[0 ~ 6 = 星期天 ~ 星期六]
%W  一年中的第几个星期        0 ~ 52
%x 日期 (09/16/98)
%X 时间 (23:48:10)
%y 两位数的年份 (90)[00 ~ 99]
%Y 完整的年份 (2009)
%% 字符串’%’

根据计算机时间得到当前时间

function gettimeDateStr(time)  --time是一个具体存在的时间
    local t = os.date("*t", time )
    return string.format("%.4d年%.2d月%.2d日", t.year, t.month, t.day) --返回年月日
    return string.format("%.2d月%.2d日%.2d:%.2d", t.month, t.day, t.hour, t.min)  --返回月日时等
end

倒计时函数(根据计算机时间看出还剩多少时间)

function getLeftTime(leftTime)   --倒计时的计算机时间
    local leftStr = ""
    if leftTime > 0 then  
        if leftTime < 60 then
            leftStr = leftTime .. "秒"
        else
            if leftTime % 60 > 0 then
                leftStr = (leftTime % 60) .. "秒"
            end
            leftTime = math.floor(leftTime / 60)
            if leftTime < 60 then
                leftStr = leftTime .. "分" .. leftStr
            else
                if leftTime % 60 > 0 then
                    leftStr = (leftTime % 60) .. "分"
                end
                leftTime = math.floor(leftTime / 60)
                if leftTime < 24 then
                    leftStr = leftTime .. "小时" .. leftStr
                else
                    if leftTime % 24 > 0 then
                        leftStr = (leftTime % 24) .. "小时"
                    end
                    leftStr = math.floor(leftTime / 24) .. "天" .. leftStr
                end
            end
        end
    end
    return leftStr
end
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【cocos2d-x 学习与应用总结】最近一段时间使用cocos2d-x lua的总结

本文总结了近期使用cocos2d-x lua过程中的一些思考和收获。
  • elloop
  • elloop
  • 2016年12月31日 23:04
  • 466

lua 日期与时间操作

require 'math' require 'os' dateopt = {} dateopt_mt = { __index = dateopt } function dateopt:new() ...

lua比较两个时间点,返回相差几天

-- 上一个时间 local lastYear = os.date("%Y", 1490889600) local lastMonth = os.date("%m", 14908896...
  • Cui860
  • Cui860
  • 2017年03月07日 12:01
  • 553

ngx lua获取时间戳的几种方式

在ngx_lua里,获取时间相关信息的方式大概有4种(见下面代码):print(string.format("%s, %s, %s, %s", ngx.time(), os.time(), os.cl...

os库 lua获取时间 转

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...

【Lua游戏开发】os库-时间函数 转

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...

os.clock()获取lua代码运行时间

转自:原文链接请点击连接查看原文,尊重楼主版权。 os.clock():获取lua代码运行时间 解释:返回一个程序使用CPU时间的一个近似值。 -- 记录开始时间 local startti...

lua时间函数操作和对比代码,os.date() os.time()

lua中时间函数的操作,以及时间对比

Lua时间转化 秒转换为日期

function common:second2DateString(second, withSecond) local hms = Split(FxGameMaths:formatSecondsTo...
  • W_han__
  • W_han__
  • 2016年10月17日 15:26
  • 3116

【Lua游戏开发】os库-时间函数

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...
  • ybhjx
  • ybhjx
  • 2017年01月17日 09:54
  • 697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua中关于时间的总结
举报原因:
原因补充:

(最多只允许输入30个字)