note 19796 deleted from ref.datetime by victor

From: Date: Mon, 09 Dec 2002 18:53:33 +0000
Subject: note 19796 deleted from ref.datetime by victor
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-40617@lists.php.net to get a copy of this message
dameFechas($dateINI,$dateEND) in the format "20020311" will return an array with the dates between that two days. For example: var_dump(dameFechas("20011230","20020102")); will return array(4) { [0]=> string(8) "20020102" [1]=> string(8) "20020101" [2]=> string(8) "20011231" [3]=> string(8) "20011230" } <? // Bisiesto function esBisiesto($y) { $res=$y%4==0 && $y%100<>0 || $y%400==0; return $res; } function numDias($i_ano,$i_mes) { switch ($i_mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; break; case 4: case 6: case 9: case 11: return 30; break; case 2: if (!esBisiesto($i_ano)) { return 28; } else { return 29; }; break; } } function formatoa2($i) { if (strlen($i)==1) return "0".$i; else return $i; } function menosmenosuno(&$s_cad) { $s_cad--; $s_cad=formatoa2($s_cad); } function dameFechas($fechaIni,$fechaFin) { $a_res=array(); $ini_ano=substr($fechaIni,0,4); $fin_ano=substr($fechaFin,0,4); $ini_mes=substr($fechaIni,4,2); $fin_mes=substr($fechaFin,4,2); $ini_dia=substr($fechaIni,6,2); $fin_dia=substr($fechaFin,6,2); $i=$fin_dia; while (($fin_ano.$fin_mes)>=($ini_ano.$ini_mes)) { while ($fin_mes>=1 && ($fin_ano.$fin_mes)>=($ini_ano.$ini_mes)) { while ($fin_dia>=1 && ($fin_ano.$fin_mes.$fin_dia)>=($ini_ano.$ini_mes.$ini_dia)) { $a_res[]=$fin_ano.$fin_mes.$fin_dia; menosmenosuno($fin_dia); } menosmenosuno($fin_mes); $fin_dia=numDias($fin_ano,$fin_mes); } $fin_mes=12; $fin_dia=31; $fin_ano--; } return $a_res; } echo "<pre>"; var_dump(dameFechas("20020309","20020310")); echo "</pre>"; ?> Hope this helps.

« previous php.notes (#40617) next »