如何在php中查找最近4个月(包括当前)的开始和结束日期

如何在php中查找最近4个月(包括当前)的开始和结束日期,php,datetime,Php,Datetime,我想得到过去4个月(包括本月)的开始和结束日期。请帮助 问候 何塞 您可以添加或删除月份。。。您将获得准确的结果 您可以添加或删除月份。。。使用PHP 5.2+,您将获得准确的结果,您可以使用和解决此问题: 示例: <?php $date = new DateTime('first day of this month 3 months ago'); // Loop 4 times. for ( $i = 0; $i < 4; $i++ ) { echo 'Start: '

我想得到过去4个月(包括本月)的开始和结束日期。请帮助

问候 何塞


您可以添加或删除月份。。。您将获得准确的结果



您可以添加或删除月份。。。使用PHP 5.2+,您将获得准确的结果,您可以使用和解决此问题:

示例:

<?php

$date = new DateTime('first day of this month 3 months ago');

// Loop 4 times.
for ( $i = 0; $i < 4; $i++ )
{
  echo 'Start: ' . $date->format('Y-m-d') . PHP_EOL;
  echo 'End: ' . $date->format('Y-m-t') . PHP_EOL;

  // Add 1 month.
  $date->add(new DateInterval('P1M'));
}

使用PHP 5.2+,您可以使用和来解决此问题:

示例:

<?php

$date = new DateTime('first day of this month 3 months ago');

// Loop 4 times.
for ( $i = 0; $i < 4; $i++ )
{
  echo 'Start: ' . $date->format('Y-m-d') . PHP_EOL;
  echo 'End: ' . $date->format('Y-m-t') . PHP_EOL;

  // Add 1 month.
  $date->add(new DateInterval('P1M'));
}
我会这样做

<?php
// current day to start with
$start = mktime(0,0,0,date('m'), date('d'), date('Y'));;

// loop through the current and last four month
for ($i = 0; $i <=4; $i++) {
    // calculate the first day of the month
    $first = mktime(0,0,0,date('m',$start) - $i,1,date('Y',$start));

    // calculate the last day of the month
    $last = mktime(0, 0, 0, date('m') -$i + 1, 0, date('Y',$start));

    // now some output...
    echo date('Y-m-d',$first) . " - ".date('Y-m-d',$last). "<br>";
}

?>

我会这样做

<?php
// current day to start with
$start = mktime(0,0,0,date('m'), date('d'), date('Y'));;

// loop through the current and last four month
for ($i = 0; $i <=4; $i++) {
    // calculate the first day of the month
    $first = mktime(0,0,0,date('m',$start) - $i,1,date('Y',$start));

    // calculate the last day of the month
    $last = mktime(0, 0, 0, date('m') -$i + 1, 0, date('Y',$start));

    // now some output...
    echo date('Y-m-d',$first) . " - ".date('Y-m-d',$last). "<br>";
}

?>

$currYear=日期(“Y”);$currMonth=日期(“m”);$monArr=array();$first=日期('Y-m-d',mktime(0,0,0,$currMonth,1,$currYear))。'00:00:00'; $last=日期('Y-m-t',mktime(0,0,0,$currMonth,1,$currYear))。'00:00:00'; $monArr['0']=$first.####***#'$最后;$PREVMODATE=日期('Y-m-d',mktime(0,0,0,$currMonth-1,1,$currYear))。'00:00:00'; $prevMoLDate=日期('Y-m-t',mktime(0,0,0,$currMonth-1,1,$currYear))。'00:00:00';$货币年=日期(“Y”);$currMonth=日期(“m”);$monArr=array();$first=日期('Y-m-d',mktime(0,0,0,$currMonth,1,$currYear))。'00:00:00'; $last=日期('Y-m-t',mktime(0,0,0,$currMonth,1,$currYear))。'00:00:00'; $monArr['0']=$first.####***#'$最后;$PREVMODATE=日期('Y-m-d',mktime(0,0,0,$currMonth-1,1,$currYear))。'00:00:00'; $prevMoLDate=日期('Y-m-t',mktime(0,0,0,$currMonth-1,1,$currYear))。'00:00:00';