Php strotime()函数用法:获取结果时出错

Php strotime()函数用法:获取结果时出错,php,mysql,strtotime,Php,Mysql,Strtotime,我有一个脚本,它返回2个日期之间的时间范围,但添加1天 $date_1 = date("Y-m-d g:i:s", strtotime('2013-06-27 12:00:00')); $date_2 = date("Y-m-d g:i:s", strtotime('2013-06-29 12:00:00')); $results = array($date_1); $i = $date_1; while ($i <= $date_2) { $i = date("Y-m-d g

我有一个脚本,它返回2个日期之间的时间范围,但添加1天

$date_1 = date("Y-m-d g:i:s", strtotime('2013-06-27 12:00:00'));
$date_2 = date("Y-m-d g:i:s", strtotime('2013-06-29 12:00:00'));
$results = array($date_1);
$i = $date_1;
  while ($i <= $date_2) {
    $i = date("Y-m-d g:i:s", strtotime("+1 day", strtotime($i)));// how do I take off here this "+1 day"
    array_push($results, $i);
    echo $i;
}
当我需要时

2013-06-27 2013-06-28 2013-06-29
问题显然是在这“+1天”,但如果我将其从函数中删除,则会出现get错误

如何解决此问题?

尝试更改此选项

strtotime("+1 day", strtotime($i))
为此:

strtotime("+0 day", strtotime($i))
我试过这个:

$date_1 = date("Y-m-d g:i:s", strtotime('2013-06-27 12:00:00'));
$date_2 = date("Y-m-d g:i:s", strtotime('2013-06-29 12:00:00'));
$results = array($date_1);
$i = $date_1;
while ($i <= $date_2) {
    $i = date("Y-m-d g:i:s", strtotime($i));// how do i take off here this "+1 day"                                                    
    array_push($results, $i);
    echo $i . "\n";
    $i = date("Y-m-d g:i:s",strtotime("+1 day", strtotime($i)));
}

您需要增加变量
$i

$date_1 = strtotime('2013-06-27 12:00:00');
$date_2 = strtotime('2013-06-29 12:00:00');
$results = array();
$i = $date_1;
  while ($i <= $date_2) {
    array_push($results, date("Y-m-d g:i:s", $i));
    $i = strtotime('+1 day', $i);
}


print_r($results);
$date_1=strottime('2013-06-27 12:00:00');
$date_2=strottime('2013-06-29 12:00:00');
$results=array();
$i=$date_1;
而($i只是想让你知道:

date_default_timezone_set('UTC');
$date_from = '2013-06-27 12:00:00';
$date_interval = '+1 day';
$date_to = '2013-06-29 12:00:00';
$date_range = array_map(function ($date) {
        return $date->format('Y-m-d g:i:s');
    }, iterator_to_array(
        new DatePeriod(new DateTime($date_from),
                       DateInterval::createFromDateString($date_interval),
                       (new DateTime($date_to))->modify('+1 day'))));
var_dump($date_range);
给了我以下信息:

array(3) {
  [0]=>
  string(10) "2013-06-27 12:00:00"
  [1]=>
  string(10) "2013-06-28 12:00:00"
  [2]=>
  string(10) "2013-06-29 12:00:00"
}

PHP5.3+兼容。

Umm..push
$i=
到结尾?顺便说一句,
strotime($i.+1天)
strotime('+1周',strotime($i))
一样好,只需调用一次
strotime
即可。
date_default_timezone_set('UTC');
$date_from = '2013-06-27 12:00:00';
$date_interval = '+1 day';
$date_to = '2013-06-29 12:00:00';
$date_range = array_map(function ($date) {
        return $date->format('Y-m-d g:i:s');
    }, iterator_to_array(
        new DatePeriod(new DateTime($date_from),
                       DateInterval::createFromDateString($date_interval),
                       (new DateTime($date_to))->modify('+1 day'))));
var_dump($date_range);
array(3) {
  [0]=>
  string(10) "2013-06-27 12:00:00"
  [1]=>
  string(10) "2013-06-28 12:00:00"
  [2]=>
  string(10) "2013-06-29 12:00:00"
}