note 62180 deleted from function.strtotime by derick

From: Date: Sun, 08 Apr 2007 13:05:08 +0000
Subject: note 62180 deleted from function.strtotime by derick
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-125217@lists.php.net to get a copy of this message
Note Submitter: Jae Lee ---- To parse UK format of date, just call parseDate( "10/2/2006", "%d/%m/%Y" ) #-----------------------------------------------# # Purpose : Returns a timestamp from a string based on the given format and default timezone if it's ambiguous. # # Supported formats # # %Y - year as a decimal number including the century # %m - month as a decimal number (range 01 to 12) # %d - day of the month as a decimal number (range 01 to 31) # # %H - hour as a decimal number using a 24-hour clock (range 00 to 23) # %M - minute as a decimal number # function parseDate( $date, $format ) { // Builds up date pattern from the given $format, keeping delimiters in place. if( !preg_match_all( "/%([YmdHMp])([^%])*/", $format, $formatTokens, PREG_SET_ORDER ) ) { return false; } foreach( $formatTokens as $formatToken ) { $delimiter = preg_quote( $formatToken[2], "/" ); $datePattern .= "(.*)".$delimiter; } // Splits up the given $date if( !preg_match( "/".$datePattern."/", $date, $dateTokens) ) { return false; } $dateSegments = array(); for($i = 0; $i < count($formatTokens); $i++) { $dateSegments[$formatTokens[$i][1]] = $dateTokens[$i+1]; } // Reformats the given $date into US English date format, suitable for strtotime() if( $dateSegments["Y"] && $dateSegments["m"] && $dateSegments["d"] ) { $dateReformated = $dateSegments["Y"]."-".$dateSegments["m"]."-".$dateSegments["d"]; } else { return false; } if( $dateSegments["H"] && $dateSegments["M"] ) { $dateReformated .= " ".$dateSegments["H"].":".$dateSegments["M"]; } return strtotime( $dateReformated ); }

« previous php.notes (#125217) next »