Ich versuche Zeichenfolge zu Zeit zu konvertieren, die Zeichenfolge Ich habe in diesem Format ist, "1 Stunde", "1 Stunde", "2 Stunden 30 Minuten", "3 Stunde 45 Minuten"Convert String Time
Ich möchte sie in H: i: s-Format konvertieren. so scheint es wie 3:45:00
zur Zeit benutze ich str_pos, um Zeichen vor hr zu bekommen und sie zu strippen und sie zu verbinden, um h: i: s format zu bilden.
$data = strtolower($data);
$hours = '00';
$minutes = '00';
$seconds = '00';
$pos = strpos($data, "h");
if ($pos !== false) {
$hours = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
$data = str_replace(['hours', 'hour', 'hrs', 'hr'], '', substr($data, $pos));
}
$pos = strpos($data, "m");
if ($pos !== false) {
$minutes = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
$data = str_replace(['minutes', 'minute', 'mins', 'min'], '', substr($data, $pos));
}
$pos = strpos($data, "s");
if ($pos !== false) {
$seconds = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
}
return $hours . ':' . $minutes . ':' . $seconds;
ähnlich Minuten ....
besser und einfacher Weg, dies zu tun? Kann ich DateTime-Methoden trotzdem verwenden?
https://eval.in/681782. ist das was du willst? –
Nicht schön, aber sollte funktionieren: '$ string = '3 hour 45 minutes'; $ dateTime = DateTime :: createFromFormat ('h \ h \ o \ ur \ \ \ \ \ \ \ \ \ \', $ string); var_dump ($ dateTime-> Format ('H: i: s')); ' – swidmann
Abhishek Salian Überprüfen Sie die Kommentare und Antworten und lassen Sie uns wissen –