Jump to content


Tugu's Content

There have been 1 items by Tugu (Search limited from 29/03/2023)


Ordernar por                Order  

#1020179 Gerar Datas De Um Intervalo

Posted by Tugu on 29/05/2013, 11:37 in PHP

Um "pouco" atrasado, mas cheguei nesse tópico através do Google hoje, e acabei achando a solução e por gostar do fórum, e para outras pessoas que caírem no tópico... aqui vai minha solução

        $dtIni = 'xxxx-xx-xx';
        $dtFim= 'xxxx-xx-xx';
	$meses = diferencaData($dtIni,$dtFim,'M');//no caso caluculei a diferença de meses
	for($i=0;$i<$meses;$i++){//fiz um loop para os meses do periodo
		echo strtotime("$dtIni+$i month");//e fui adicionando meses de acordo com o contador i, na data incio
        }
         /* Referências validas para calculo de data php: mais referencias consulte o manual na função strtotime
		//adiciona um dia
		echo strtotime("+1 day");
		//adiciona uma semana
		echo strtotime("+1 week");
		//adiciona um mês
		echo strtotime("+1 month");
		//adiciona um ano
		echo strtotime("+1 year");
	*/
 

function diferencaData($d1, $d2, $type='D', $sep='-')
{
	$d1 = explode($sep, $d1);
	$d2 = explode($sep, $d2);
	switch ($type){
		case 'A':
			$X = 31536000;
			break;
		case 'M':
			$X = 2592000;
			break;
		case 'D':
			$X = 86400;
			break;
		case 'H':
			$X = 3600;
			break;
		case 'MI':
			$X = 60;
			break;
		default:
			$X = 1;
			break;
	 }
	return floor( ( ( mktime(0, 0, 0, $d2[1], $d2[2], $d2[0]) - mktime(0, 0, 0, $d1[1], $d1[2], $d1[0] ) ) / $X ) );
}






IPB Skin By Virteq