我会要求用户输入开始日期和结束日期。我希望从开始到结束获得所有日期,并获得这些日期之间的天数。如何在开始和结束日期的PHP中执行此操作。
答案 0 :(得分:0)
将两个日期转换为时间戳,然后从一个计数到另一个,转换回日期。
答案 1 :(得分:0)
处理日期时,您可以像Ignacio推荐的那样转换为时间戳(秒)。但一般情况下,如果可能的话,你最好不要使用实际的日期和时间。更高层次的日子。
为此,请参阅PHP内置的DateTime类:
http://www.php.net/manual/en/class.datetime.php
http://www.php.net/manual/en/class.dateinterval.php
这些在PHP 5.2中得到了很好的支持,但PHP 5.3增加了更好的DateTime处理功能。
答案 2 :(得分:0)
此代码的最终结果将是天数。
$ days =(strtotime(date(“Y-m-d”)) - strtotime(“2010-08-20”))/(60 * 60 * 24); echo $ days;
答案 3 :(得分:0)
阅读我对这个主题的回答,举例:
答案 4 :(得分:0)
根据用户提供的输入,我很可能会使用类似
的内容$dateOne = (int)(mktime(0, 0, 0, $month1, $day1, $year1)/86400); //Get the first date as a unix timestamp, then convert to days.
$dateTwo = (int)(mktime(0, 0, 0, $month2, $day2, $year2)/86400); //Get the second date as a unix timestamp, then convert to days.
// Example
//$dateOne = (int)(mktime(0,0,0,12,03,2009)/86400);
//$dateTwo = (int)(mktime(0,0,0,08,19,2011)/86400);
$daysBetween = $dateTwo-$dateOne; //Calculate days between.
echo $daysBetween.'<br />'; //Echo the days between.
for ($i=1; $i=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.
echo date('Y-m-d', $dateOne*86400+($i*86400)).'<br />';
}
以上代码将为您提供所有日期,包括第一个和最后一个日期。只获得改变之间的那些:
for ($i=1; $i=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.
为:
for ($i=2; $i<=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.
经过测试,效果很好。
注意:第一个日期必须在最后一个日期之前。
干杯 查理