PHP计算当天剩余秒数最方便和最快的方法
目录
结论推导
一、结论
# 最方便
echo strtotime('23:59:59') - time();
#最快
echo 86400 - (time() + 28800) % 86400;
二、推导过程
用 86400 减去今天已经过去了多少秒,即可求得今天还剩多少秒。
86400=24*3600,即一天的总秒数。
28800=8*3600,即 8 个小时的总秒数。
当前时间戳取模 86400 并不是今天已经过去了多少秒,因为时间戳起始时间并不是 0 点,而是 8 点整。所以,如果当前是早上 8 点整,取模 86400 后会等于 0,与我们的本意不符(求今天已经过去了多少秒)。
因此,要用当前时间戳加上 8 个小时的总秒数后再取模 86400,即可求得今天过去了多少秒。
结论是由下面的算法简化后得到的:
86400 - (time() + 8 * 3600) % 86400