Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykel-ctba

Gerar array com meses entre duas datas

Recommended Posts

Fala galera,

 

O título é auto-explicativo. Tenho duas datas e quero ver o intervalo de meses entre elas.

 

Pensei em utilizar o Range:

$mesInicio = format_date("2015-12-01","m");
$mesAtual = date("m");

$arrayMeses = range($mesInicio,$mesAtual);

Mas penso que poderá dar problema se o período for maior que um ano, ou for na transição entre um ano e outro, pois os meses poderão se repetir.

 

Qual a melhor maneira de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara da uma olhada nas classes DateTime, DateInterval e DatePeriod.

<?php

$begin = new DateTime( '2012-08-01' );
$end = new DateTime( '2012-08-31' );
$end = $end->modify( '+1 day' ); 

$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);

foreach($daterange as $date){
    echo $date->format("Ymd") . "<br>";
}
?>

Um exemplo da documentação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa @rockrgo!

 

Dei uma lida sim e adaptei meu negócio:

$inicio = new DateTime(format_date($dataInicioJob,"d-m-Y"));
$intervalo = new DateInterval('P1M');
$fim = new DateTime(date("d-m-Y"));
$periodoArray = new DatePeriod($inicio, $intervalo, $fim);

foreach...

Só uma dúvida... porque no seu exemplo é adicionado um dia na data final?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.