kostenloser Webspace werbefrei: lima-city


Regex für pubDate gesucht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Moin,

    ich suche einen Regex, der folgendes kann:

    Mon, 06 Feb 2012 20:44:43 GMT


    umwandeln in

    06 Februar 2012, 20:44


    Ich weiß, dass es Funktionen gibt, um das ohne Regex um zu wandeln. Das hilft mir aber nicht :D
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hey, ich gebe dir nen Hilfsmittel an die Hand:
    http://regexp-evaluator.de/evaluator/

    Damit wirst du es selber schaffen, wenn du es schon nicht auf die einfache Methode machen willst/kannst.
  4. Hallo

    ich würde es umwandeln in Timestamp und dann zurück zu gewünschtes Datum-Format

    $startdatum = 'Mon, 06 Feb 2012 20:44:43 GMT'; 
    $temp_time = strtotime($startdatum); 
    $neudatum1 = date('d. # Y, H:i',$temp_time);
    
    $monate_deu = array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'July', 'August', 'September', 'November', 'Dezember'); 
    $monat_id = ( date('n',$temp_time) - 1 ); 
    $de_monat = $monate_deu[$monat_id]; 
    
    $neudatum2 = str_replace('#',$de_monat,$neudatum1); 
    
    echo "<br />".$startdatum."\n"; 
    echo "<br />".$neudatum1."\n"; 
    echo "<br />".$neudatum2."\n";


    die Umlaute in den deutschen Monats-Namen Array evtl. richtig codiert erstellen (utf-8)

    Das Zeichen # dient als Platzhalter für den später eingefügten deutschen Monats-Name

    Ausgabe
    Mon, 06 Feb 2012 20:44:43 GMT
    06. # 2012, 15:44
    06. Februar 2012, 15:44


    ... hä ?!? .. aber warum stimmt so die Uhrzeit nicht ?!?!

    EDIT ... weil mein Webspace andere Zeitzone beim Test hatte

    mit folgender Zeile oben im Code

    date_default_timezone_set('Europe/Berlin');


    ist dann die Ausgabe

    Mon, 06 Feb 2012 20:44:43 GMT
    06. # 2012, 21:44
    06. Februar 2012, 21:44


    besser :)





    Beitrag zuletzt geändert: 19.2.2012 10:52:20 von twichi
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Ausschließlich REGEX (und etwas PHP):
    <?php
    
    header('Content-Type: text/plain');
    
    $time	= 'xxx Mon, 06 Feb 2012 20:44:43 GMT xxx';
    //$time	= 'Mon, 06 Feb 2012 20:44:43 GMT';
    
    // VARIANTE 1
    //$pattern = '/^([a-zA-Z]*), ([0-9]*) ([a-zA-Z]*) ([0-9]*) ([0-9]*):([0-9]*):([0-9]*) ([A-Z]*)$/';
    $pattern = '/([a-zA-Z]{3}), ([0-9]{2}) ([a-zA-Z]{3}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) ([^ ]*)/';
    $replace = '$2 $3 $4, $5:$6';
    
    $result = preg_replace($pattern, $replace, $time);
    echo("'$time' => '$result'\n");
    
    // VARIANTE 2
    //$pattern = '/^([a-zA-Z]*), ([0-9]*) ([a-zA-Z]*) ([0-9]*) ([0-9]*):([0-9]*):([0-9]*) ([A-Z]*)$/e';
    $pattern = '/([a-zA-Z]{3}), ([0-9]{2}) ([a-zA-Z]{3}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) ([^ ]*)/e';
    $replace = 'doreplace(stripslashes(\'$2\'), stripslashes(\'$3\'), stripslashes(\'$4\'), stripslashes(\'$5\').\':\'.stripslashes(\'$6\'))';
    function doreplace($day, $month, $year, $time) {
    	$months = array(
    		'Jan'	=> 'Januar',
    		'Feb'	=> 'Februar',
    		'Mar'	=> 'März',
    		'Apr'	=> 'April',
    		'May'	=> 'Mai',
    		'Jun'	=> 'Juni',
    		'Jul'	=> 'July',
    		'Aug'	=> 'August',
    		'Sep'	=> 'September',
    		'Oct'	=> 'Oktober',
    		'Nov'	=> 'November',
    		'Dec'	=> 'Dezember'
    	);
    
    	return "$day {$months[$month]} $year, $time";
    }
    
    $result = preg_replace($pattern, $replace, $time);
    echo("'$time' => '$result'");
    
    ?>
    Wenn du genau schaust fallen dir auskommentierte
    $pattern
    -Variablen auf. Diese treffen jeweils NUR auf die auskommentierte
    $time
    -Variable. Die nicht-auskommentierten Patterns treffen in einem beliebigen String jeweils den Zeit-Teil (Beispiel:
    $time
    -Variable).

    Ich habe das auf 2 Varianten gelöst.
    1) ausschließlich REGEX: dabei wird aber
    Mon, 06 Feb 2012 20:44:43 GMT
    zu
    06 Feb 2012, 20:44
    .
    2) Mischung aus REGEX und PHP: dabei werden die Monatsnamen auch übersetzt.

    Beitrag zuletzt geändert: 19.2.2012 12:22:15 von hackyourlife
  6. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Danke, mal schauen, in wie weit ich damit arbeiten kann :)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!