Mailinglisten-Archive |
> On Thu, Aug 08, 2002 at 01:57:50PM +0200, Martin Spütz wrote: >> preg_replace() > das kanns ja irgendwie nicht sein! > mit date hat man 1000 moeglichkeiten einen unix timestamp in ein > normales datum mit einem format-string zu bringen, und es gibt keine > funktion die das gegenteil macht???? > ich hab zB in einer datenbank gespeichert wie der user das datum ablegen > muss. (zB : m.d.Y) jetzt wuerde ich geren, eben je nachdem was in der > datenbank fuer ein format-string ist, dieses datum in einen unix > timestamp umwandeln um zu ueberpruefen ob es valid ist, und wenn ja es > gleich wieder umwandeln in das datenbank format (diesmal mit date) > da muss es doch eine funktion geben... bitte... bitte.. bitte.... function un_date($pattern,$string) { $mlist = array( 'januar' => 1, 'februar' => 2, 'märz' => 3, 'märz' => 3, 'maerz' => 3, 'april' => 4, 'mai' => 5, 'juni' => 6, 'juli' => 7, 'august' => 8, 'september' => 9, 'oktober' => 10, 'november' => 11, 'dezember' => 12 ); $day = 0; $month = 0; $year = 0; $hour = 0; $minute = 0; $second = 0; $c = strlen($pattern); for($i = 0; $i < $c; $i++) { $follow = substr($pattern,$i+1,1); if ($follow == "\\") { $follow = substr($pattern,$i+2,1); } switch (substr($pattern,$i,1)) { case 'd': $l = 2; break; case 'm': $l = 2; break; case 'y': $l = 2; break; case 'Y': $l = 4; break; case 'H': $l = 2; break; case 'i': $l = 2; break; case 's': $l = 2; break; case 'F': reset($mlist); foreach($mlist as $monthname => $monthnum) { if (strpos('#'.strtolower($string),$monthname) == 1) { $month = $monthnum; $l = strlen($monthname); break; } } break; case "\\": $l = 1; $i++; break; default: $l = strpos($string,$follow); $l = 1; } $work = substr($string,0,$l); $string = substr($string,$l); switch (substr($pattern,$i,1)) { case 'd': $day = $work; break; case 'm': $month = $work; break; case 'Y': $year = $work; break; case 'H': $hour = $work; break; case 'i': $minute = $work; break; case 's': $second = $work; break; case 'y': if ($work >= 70) { $year = 1900+$work; } else { $year = 2000+$work; } break; } } $timestamp = mktime($hour,$minute,$second,$month,$day,$year); return $timestamp; } Das Teil verhält sich ähnlich wie die Date Funktion ... nur eben umgekehrt ... ich hab noch nicht alle Sachen in das teil implementiert, aber die Std-Konvertierungen sollten damit gehen ... Achja ... langsam isses auch ;-) > [ -e n y o- ] Gruss Andreas Lange -- Haas Media GmbH, Agentur für moderne Medien Rehbockstraße 25, 30167 Hanover Tel: (05 11) 270 38 70, Fax: (05 11) 270 38 69 http://www.haas-media.de
php::bar PHP Wiki - Listenarchive