0

たとえば、2つの日付(開始と終了)があります。

$date['start'] = '2012-07-11';
$date['end'] = '2012-07-13';

このために-4日と+4日の間隔を生成したいと思います。だから私は例えば配列を受け取りたいです:

$date['start'] = '2012-07-07';
$date['end'] = '2012-07-09';

$date['start'] = '2012-07-08';
$date['end'] = '2012-07-10';

$date['start'] = '2012-07-09';
$date['end'] = '2012-07-11';

$date['start'] = '2012-07-10';
$date['end'] = '2012-07-12';

$date['start'] = '2012-07-11';
$date['end'] = '2012-07-13';

$date['start'] = '2012-07-12';
$date['end'] = '2012-07-14';

$date['start'] = '2012-07-13';
$date['end'] = '2012-07-15';

$date['start'] = '2012-07-14';
$date['end'] = '2012-07-16';

$date['start'] = '2012-07-15';
$date['end'] = '2012-07-17';

これにはどのように最善の方法がありますか?

4

3 に答える 3

0

range(date('Ymd'、strtotime('-4 days')、date('Ymd'、strtotime('+ 4 days')))、

于 2012-07-11T14:17:18.853 に答える
0

提供された範囲の-4日から始まり、+ 4日までの9組の日付が必要ですか?

あなたの日付が1970年以降になると仮定すると:

<?php
$start=strtotime($date['start']);
$end=strtotime($date['end']);

for($loop=-4;$loop<=4;$loop++)
{
    $loop_str='';
    if($loop>=0) $loop_str.='+';
    $loop_str.=$loop.' days';
    $date['start']=strtotime($loop_str, $start);
    $date['end']=strtotime($loop_str, $end);
    print_r($date);
}
?>
于 2012-07-11T14:39:12.857 に答える
0

このコードはトリックを行います:

 $date['start'] = '2012-07-11';
 $date['end'] = '2012-07-13';

 $dates=array();
 for ($i=-4; $i<=4; $i++){
   $startDate=strtotime($date['start'] );
   $endDate=strtotime($date['end'] );

   $startDate=$startDate+($i*60*60*24); //60*60*24 equal to one day
   $endDate=$endDate+($i*60*60*24);

   array_push($dates, array('start'=>date('Y-m-d', $startDate), 'end'=> date('Y-m-d',$endDate)));
 }
 print_r($dates);

出力:

Array(
    [0] => Array
        (
            [start] => 2012-07-07
            [end] => 2012-07-09
        )

    [1] => Array
        (
            [start] => 2012-07-08
            [end] => 2012-07-10
        )

    [2] => Array
        (
            [start] => 2012-07-09
            [end] => 2012-07-11
        )

    [3] => Array
        (
            [start] => 2012-07-10
            [end] => 2012-07-12
        )

    [4] => Array
        (
            [start] => 2012-07-11
            [end] => 2012-07-13
        )

    [5] => Array
        (
            [start] => 2012-07-12
            [end] => 2012-07-14
        )

    [6] => Array
        (
            [start] => 2012-07-13
            [end] => 2012-07-15
        )

    [7] => Array
        (
            [start] => 2012-07-14
            [end] => 2012-07-16
        )

    [8] => Array
        (
            [start] => 2012-07-15
            [end] => 2012-07-17
        )

)
于 2012-07-11T15:01:27.097 に答える