local tm = osdate("t")
print(tmyear""tmmonth""tmday" "tmhour":"tmmin":"tmsec)
参考方法如下:
local str1 = "12:36:28"
local str2 = "14:38:45"
local h1,m1,s1 = stringmatch(str1,"(%d+):(%d+):(%d+)")
local h2,m2,s2 = stringmatch(str2,"(%d+):(%d+):(%d+)")
local time1 = h1 3600 + m1 60 + s1
local time2 = h2 3600 + m2 60 + s2
print(time2 - time1)
得出的是 相差多少秒 除3600就是多少小时啦
两个函数需要注意的地方就是加入了时区的概念
ostime() 得到是当前时间的距离19701108:00时间的秒数,如果传入的参数小于这个时间,那么就会得到一个,秒数就是负数,会得到一个空值
ostime()函数
1、不传参的话返回当前时间转化成秒数的结果 local time2 = ostime()
2 传参返回指定时间转化秒数的结果 local time = ostime({year =2016, month = 11, day =23, hour =17, min =17, sec = 00})
print(“====================time=,”,time) -- 结果打印 1479892620
3、任何一个时区,在相同的时间,同时调用ostime() 返回的结果都是一样的
osdate()
1、把时间戳转化成可显示的时间字符串
dump(osdate(“t”,0),“--->”) -- 格式化成表的形式显示
2print("===============osdate()==",osdate("%Y-%m-%d%H:%M:%S",1479892620))
Result:
===============osdate()== 2016-11-23﹎17:17:00
3、如果服务器返回一个时间戳,客户端想要转换成可读样式,需要考虑到时区问题,因为是按照本地时区转换的,如果本地时区跟服务器所在时区不一致,就会导致时间显示错误,一般解决办法就是 加上时区差即可。ps:如果有夏令时,则需要加上3600s
function isToday(timestamp)
local today = osdate("t")
local secondOfToday = ostime({day=todayday, month=todaymonth,
year=todayyear, hour=0, minute=0, second=0})
if timestamp >= secondOfToday and timestamp < secondOfToday + 24 60 60 then
return true
else
return false
end
end
print(isToday(ostime({day=17, month=5, year=2012, hour=0, minute=0, second=0})))
print(isToday(ostime({day=17, month=5, year=2012, hour=16, minute=28, second=38})))
print(isToday(ostime({day=17, month=5, year=2012, hour=23, minute=59, second=59})))
print(isToday(ostime({day=16, month=5, year=2012, hour=23, minute=59, second=59})))
print(isToday(ostime({day=18, month=5, year=2012, hour=0, minute=0, second=0})))
以上就是关于coco2dx 3.2 lua里怎么获取系统时间全部的内容,包括:coco2dx 3.2 lua里怎么获取系统时间、如何确定在使用Lua脚本的执行时间、lua中os.time和os.date区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)