查找php中2个unix时间戳之间的天数

dot*_*tty 28 php unix timestamp strtotime mktime

干草,我有一个举办活动的数据库.有两个字段'start'和'end',它们包含时间戳.当管理员输入这些日期时,他们只能设置日,月,年.所以我们只处理包含天,月,年,而不是小时,分钟,秒(小时,分钟和秒设置为0,0,0)的邮票.

我有一个事件,开始时间为1262304000,结束时间为1262908800.这些转换为2010年1月1日和2010年1月8日.我如何获得这些时间戳之间的所有日期?我希望能够返回2010年1月2日(1262390400),2010年1月3日(1262476800)..一直到结束邮票.这些事件可以跨越到不同月份,例如5月28日至6月14日.

任何想法如何做到这一点?

Vin*_*ard 45

您只需计算两个日期之间的秒数,然后除以得到天数:

$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用for循环来检索日期:

$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;

for ($i = 1; $i < $numDays; $i++) {
    echo date('Y m d', strtotime("+{$i} day", $smallestTimestamp)) . '<br />';
}
Run Code Online (Sandbox Code Playgroud)

同样,如果您不知道哪个时间戳是最小的,则可以使用min()函数(strtotime中的第二个参数).