note 62180 added to function.strtotime
| From: | JaeLee at osu1 dot php dot net | Date: | Wed, 22 Feb 2006 00:16:01 +0000 |
| Subject: | note 62180 added to function.strtotime | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-104174@lists.php.net to get a copy of this message | ||
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 );
}
----
Server IP: 85.116.0.130
Probable Submitter: 195.7.246.198
----
Manual Page -- http://www.php.net/manual/en/function.strtotime.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+62180
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+62180&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+62180&report=yes
Search -- http://master.php.net/manage/user-notes.php