2017-06-14 1 views
-1

Ich brauche Zeichenfolge zu überprüfen, ob diese Zeichenfolge im Format vonphp Prüfen Sie, ob Zeichenfolge in ameisen h: i A - h: i A

ist
date("h:i A") - date("h:i A") 

(ex: 6: 00 AM- 03.00 PM)

Wie überprüfen Sie, ob die Zeichenfolge im richtigen Format ist oder nicht?

Ich brauche eine Funktionslogik, wie wenn sie nicht korrekt formatiert ist, return false sonst wahr

+0

Verwendung Regex finden dies zu überprüfen. – Enstage

+0

[Überprüfen Sie diese Antwort] (https://Stackoverflow.com/a/12759306/2064981) und Sie sind halb da;) – ClasG

+1

'preg_match ('/^([1-9] | 1 [012]): [0-5] \ d [AP] M $/', $ myString); '. – Phylogenesis

Antwort

1

Es ist ein wenig unklar, was Sie fragen, aber ich nehme an, es so etwas wie das ist:

$myString = '6:00 AM - 3:00 PM' 
preg_match('/[0-2]?[0-9]:[0-6][0-9]\s(?:AM|PM)\s-\s[0-2]?[0-9]:[0-6][0-9]\s(?:AM|PM)/', $myString, $matches) 
print $matches 
?> 6:00 AM - 3:00 PM 
+0

ist es für diese Bedingung fehlgeschlagen 00:00 Uhr - 12:00 Uhr –

+0

@dhanu Siehe meine aktualisierte Antwort. – Jokab

0

es ist unklar, aber Sie werden wie diese

\d+:\d+\s[AP]M-\s\d+:\d+\s[AP]M 
0

Sie etwas brauchen, kann es auf diese Weise überprüfen:

$str = '6:00 AM - 3:00 PM'; 

$parts = explode('-', $str, 2); 

$format = '%l:%M %p'; 

var_dump(strptime($parts[0], $format) && strptime($parts[1], $format)); 
0

Ich fand Lösung für mein String folgt

echo preg_match('/^(?:0[1-9]|1[0-2]|[1-9]):[0-5][0-9] (am|pm|AM|PM)(|)-(|)(?:0[1-9]|1[0-2]|[1-9]):[0-5][0-9] (am|pm|AM|PM)$/', "12:00 AM - 12:00 AM"); 

Sie Lösung in enter link description here

Verwandte Themen