Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的开始和结束日期差异_Php_Date_Days - Fatal编程技术网

php中的开始和结束日期差异

php中的开始和结束日期差异,php,date,days,Php,Date,Days,我将要求用户输入开始日期和结束日期。我想得到从开始到结束的所有日期,以及这些日期之间的天数。在给定的开始日期和结束日期的PHP中如何实现这一点。将两个日期转换为时间戳,然后从一个日期计数到另一个日期,再转换回日期。处理日期时,可以按照Ignacio的建议转换为时间戳(秒)。但如果可能的话,通常情况下,你最好在更高的层次上处理实际的日期和天数 为此,请参见PHP中内置的DateTime类: PHP5.2很好地支持这些功能,但PHP5.3添加了更好的日期时间处理功能。这段代码的最终结果将是天数

我将要求用户输入开始日期和结束日期。我想得到从开始到结束的所有日期,以及这些日期之间的天数。在给定的开始日期和结束日期的PHP中如何实现这一点。

将两个日期转换为时间戳,然后从一个日期计数到另一个日期,再转换回日期。

处理日期时,可以按照Ignacio的建议转换为时间戳(秒)。但如果可能的话,通常情况下,你最好在更高的层次上处理实际的日期和天数

为此,请参见PHP中内置的DateTime类:


PHP5.2很好地支持这些功能,但PHP5.3添加了更好的日期时间处理功能。

这段代码的最终结果将是天数

$days=(标准时间(日期)(“Y-m-d”)-标准时间(“2010-08-20”)/(60*60*24);
回声$天

阅读我对本主题的回答,并举例说明:


根据用户提供的输入,我很可能会使用

$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 />';
}
致:

用于($i=2;$i)
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.