Aus einem String zwei Uhrzeiten holen


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

MasterJM

Erfahrenes Mitglied
Hallo,

ich habe ein PHP Problem, das ich derzeit noch nicht gelöst habe.
Aus einem String möchte ich zwei Uhrzeiten holen (Start und Ende einer Veranstaltung).

Der String sieht so aus:
Code:
title="wöchentlich Fr 8-10 Uhr 07.10.2019-05.04.2020: Blockung Blabla, BlaBla-Name, Herr XYZ" class="weekly">042222
Sprich ich möchte in eine Variable die 8 haben und in einer zweiten die 10.

Mit welcher Funktion und welchem RegEx kann ich das lösen?

"Uhr" taucht nur einmal im String auf, aber z.B. der "-" schon mehrmals. (Jedenfalls die Strings, die ich derzeit sehe kommen so rüber).

Habe in PHP keine große Erfahrung.
Danke.
 

Yaslaw

n/a
Moderator
PHP:
$re = '/\b(\d{1,2})-(\d{1,2}) Uhr/m';
$str = 'wöchentlich Fr 8-10 Uhr 07.10.2019-05.04.2020: Blockung Blabla, BlaBla-Name, Herr XYZ';

print_r($re, $str, $match);

var_dump ($match);
Code:
Array
(
    [0] => 8-10 Uhr
    [1] => 8
    [2] => 10
)
 

Yaslaw

n/a
Moderator
Omg, falsch korrigiert. Wollte den var_dump überschreiben...
PHP:
$re = '/\b(\d{1,2})-(\d{1,2}) Uhr/m';
$str = 'wöchentlich Fr 8-10 Uhr 07.10.2019-05.04.2020: Blockung Blabla, BlaBla-Name, Herr XYZ';

preg_match($re, $str, $match);

print_r ($match);
 

MasterJM

Erfahrenes Mitglied
Danke.

Leider sehe ich gerade, gibt es auch Outputs, wo in der Zeile die Uhrzeit mit X:Y steht, also dann wenn es nicht die volle Stunde ist, z.B. 8:15-10:00 oder 8:30-11:00

Wie kann ich den RegEx dafür erweitern? Sonst läuft es bis dato prima.
 

MasterJM

Erfahrenes Mitglied
Danke, habe es derzeit mit einer IF Abfrage gelöst, die sich den String anschaut und je nach Anzahl der : ein anderes RegEx nimmt.
Schaue mir das mal genauer an :)
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge