lua中關於時間的總結

在項目的開發過程中,難免會對時間進行處理,下面對關於時間的知識進行總結一下:
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
發佈了46 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章