some_correction _on_PHP_manual

From: Date: Thu, 18 Mar 2004 02:27:09 +0000
Subject: some_correction _on_PHP_manual
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969359638@lists.php.net to get a copy of this message
Dear sir/mam, hello! This is Pradeep Kumar from India. I felt the PHP manual provided by you, highly helpful for development. Being a regular user of manual I feel it my duty to inform you about any bug I encounter in the manual. In date() function reference page the first function under the heading User contributed notes: the first function datecalc($rdate, $j=7) returns date with subtracted $j days from $rdate gives wrong output for any $j one less then day of the date $rdate (eg. dateecalc('17-04-2004',16 )) or any no of days more than this. This is because of a wrong condition check in the code. The right code with enhanced leap year check is : //==================================== function datecalc ($rdate, $j=7) { $rdate = explode("-",$rdate); $y = $rdate[0]; $m = $rdate[1]; $d = $rdate[2]; // CHECK LEAP YEAR if($y%4==0 && ($y%100!=0 || $y%400==0)) { $leap='Y'; } // MONTH SWITCH: Determines days in previous month $dm switch ($m) { case 2: $dm = '31'; break; case 3: if($leap == 'Y') { $dm = '29'; break; }
	    else  { $dm = '28';  break;   }
case 4: $dm = '31'; break; case 5: $dm = '30'; break; case 6: $dm = '31'; break; case 7: $dm = '30'; break; case 8: $dm = '31'; break; case 9: $dm = '31'; break; case 10: $dm = '30'; break; case 11: $dm = '31'; break; case 12: $dm = '30'; break; case 1: $dm = '31'; break; } // END SWITCH // SUBTRACT DAYS AND ROLL BACK MONTHS $rd = $d; $rm = $m; $ry = $y; $rj = $j; while($rj >= 1) { if($rd == '1') //Check for first day of month { $rm = $rm - 1; //Back one month $rd = $dm; //Set day equal to days of previous month } else $rd = $rd - 1; //Subtract 1 day if($rm < 1) //Sets up previous year {
      $ry = $ry - 1; //Subtracts year
      $rm = '12';    //We know this must be December
      $rd = '31';    //December has 31 days
} $rj = $rj - 1; //Subtract 1 iteration } // CREATE THE NEW DATE $rdate $rdate = $ry; $rdate .= '-'; $rdate .= $rm; $rdate .= '-'; $rdate .= $rd; return $rdate; } // END datecalc() //==================================== Hope this right code could be helpful for some other programmers like me. _________________________________________________________________ Join BharatMatrimony.com. http://www.bharatmatrimony.com/cgi-bin/bmclicks1.cgi?72 Unmarried? Join Free.

« previous php.doc (#969359638) next »