在 php 中查找 2 个 unix 时间戳之间的天数
嘿,我有一个保存事件的数据库。有 2 个字段“开始”和“结束”,它们包含时间戳。当管理员输入这些日期时,他们只能设置日、月、年。所以我们只处理包含日、月、年的标记,而不是包含时、分、秒的标记(时、分和秒设置为 0,0,0)。
我有一个事件,开始时间为 1262304000,结束时间为 1262908800。这些将转换为 2010 年 1 月 1 日和 2010 年 1 月 8 日。我如何获得这些时间戳之间的所有天数?我希望能够返回 2010 年 1 月 2 日 (1262390400)、2010 年 1 月 3 日 (1262476800) .. 一直到结束标记。这些活动可能会跨越不同的月份,比如 5 月 28 日到 6 月 14 日。
有什么想法可以做到这一点吗?
Hay, i have a database holding events. There are 2 fields 'start' and 'end', these contain timestamps. When an admin enters these dates, they only have the ability to set the day,month,year. So we are only dealing with stamps containing days,months,years, not hours,minutes,seconds (hours,minutes and seconds are set to 0,0,0).
I have an event with the start time as 1262304000 and the end time as 1262908800. These convert to Jan 1 2010 and Jan 8 2010. How would i get all the days between these timestamps? I want to be able to return Jan 2 2010 (1262390400), Jan 3 2010 (1262476800) .. all the way to the end stamp. These events could cross over into different months, say May 28 to June 14.
Any ideas how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您只需计算两个日期之间的秒数,然后除以得到天数:
然后,您可以使用 for 循环来检索日期:
同样,如果您不知道哪个时间戳是最小的,您可以使用min() 函数(strtotime 中的第二个参数)。
You just have to calculate the number of seconds between the two dates, then divide to get days :
Then, you can use a for loop to retrieve the dates :
Again, if you don't know which timestamp is the smallest, you can use the min() function (second argument in strtotime).
我认为对此的快速解决方法是从 end_stamp 中减去一天的秒数,直到到达 start_tag。
我会构建一个日期数组以供以后使用。
编辑(示例)
这应该涵盖任何时间范围,即使是超过几个月。
I think that a quick workaround for this is to subtract the amount of a days worth of seconds from the end_stamp until you get to the start_tag.
I would build an array of the days to use later.
EDIT (example)
This should cover any time frame even if its over a bunch of months.
试试这个:
希望这有帮助!
Try this:
Hope this helps !
http://www.plus2net.com/php_tutorial/date-diff.php
http://www.phpf1.com/tutorial/php-date-difference.html
http://www.plus2net.com/php_tutorial/date-diff.php
http://www.phpf1.com/tutorial/php-date-difference.html
请注意,
range()
函数是包容性的。Note that the
range()
function is inclusive.像这样的东西吗?
顺便说一句,1262304000 是 12 月 31 日,而不是 1 月 1 日。
Something like this?
By the way, 1262304000 is Dec 31, not Jan 1.
获取两个日期的差值并将其除以 86400。abs(($date1 - $date2) / 86400) 将产生所需的结果
get the difference of two dates and divide it by 86400. abs(($date1 - $date2) / 86400) will produce the needed result