note 107354 deleted from function.strtotime by derick

From: Date: Sun, 14 Dec 2014 11:36:33 +0000
Subject: note 107354 deleted from function.strtotime by derick
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-201172@lists.php.net to get a copy of this message
Note Submitter: giacomo at cinquepunti dot it ---- this function allow the use of native strtotime with dates before 1970 (and before 1900) even in Windows <?php function safe_strtotime($string) { if(!preg_match("/\\d{4}/", $string, $match)) return null; //year must be in YYYY form $year = intval($match[0]);//converting the year to integer if($year >= 1970) return date("Y-m-d", strtotime($string));//the year is after 1970 - no problems even for Windows if(stristr(PHP_OS, "WIN") && !stristr(PHP_OS, "DARWIN")) //OS seems to be Windows, not Unix nor Mac { $diff = 1975 - $year;//calculating the difference between 1975 and the year $new_year = $year + $diff;//year + diff = new_year will be for sure > 1970 $new_date = date("Y-m-d", strtotime(str_replace($year, $new_year, $string)));//replacing the year with the new_year, try strtotime, rendering the date return str_replace($new_year, $year, $new_date);//returning the date with the correct year } return date("Y-m-d", strtotime($string));//do normal strtotime } ?>

« previous php.notes (#201172) next »