0
votes

Diviser une chaîne pour remorquer les objets DateTime

J'ai ce genre de chaîne 09: 00-18: 00 , je veux obtenir 2 \ DateTime. Le temps de la partie droite renvoie un objet et celui de la partie gauche renvoie un autre objet. J'ai essayé d'utiliser Split, mais la solution ne semble pas super, c'est pourquoi je demande une autre solution. C'est ma solution: xxx

toute aide serait appréciée.


1 commentaires

Quels sont vos attentes de résultat? Pouvez-vous préciser.


3 Réponses :


1
votes

Si vous êtes sûr que votre entrée aura toujours la même structure, vous pouvez utiliser quelque chose comme ceci:

list($start, $end) = explode('-', str_replace(':','h','09:00-18:00'));


1 commentaires

Est-il possible de vérifier si ma chaîne floue ce format "09: 00-18h00"?



1
votes

Vous devez utiliser DateTime :: CreateFromFormat

$line = '09:00-18:00';

$split = explode('-', $line);

$start = DateTime::createFromFormat ( 'H:m', $split[0]);
$end = DateTime::createFromFormat ( 'H:m', $split[1]);

print_r($start);
echo '>>>';
print_r($end);


1 commentaires

Est-il possible de vérifier si ma chaîne floue ce format "09: 00-18h00"?



1
votes

Date_create et nouvelle DateTime reconnaissent HH: mm et HH: mm: ss Même sans spécifications de format. La date est définie sur la date actuelle.

if(preg_match('/^([01][0-9]|2[0-3]):[0-5][0-9]-([01][0-9]|2[0-3]):[0-5][0-9]$/',$line)){
  //processing

}
else {
  //format error
}


1 commentaires

Est-il possible de vérifier si ma chaîne floue ce format "09: 00-18h00"?