os.time
的表格参数有三个必填字段year
,month
和day
,可能包含字段hour
(默认为12
}),min
(默认为0
),sec
(默认为0
)和isdst
(默认为nil
)。
hour
字段似乎有点奇怪,为什么它会像其他字段一样默认为12
而不是0
?
我还注意到它已在Lua 5.2 manual中记录,但未记录Lua 5.1 manual,但稍微测试表明在两个版本中都是如此。
print((os.time{year=2014, month=5, day=13}) - (os.time{year=2014, month=5, day=13, hour=0}))
输出:43200
(12 * 60 * 60)
答案 0 :(得分:2)
来自here的Roberto Ierusalimschy的解释:
这是故意的。它甚至记录在PiL中(第202页,第2版)(尽管不在手册中)。我从未意识到'date'有不同的默认值。 (中午似乎比给定日期更“内部”而不是午夜......)