我想字符串轉換爲時間, 字符串我已經都是這種格式, 「1個小時」,「1小時」,「2小時30分鐘」,「3小時45分鐘」字符串轉換爲時間
我想將它們轉換爲H:i:s格式。所以它看起來如3:45:00
當前我正在使用str_pos在hr之前獲取字符,並將它們剝離並將它們加入以形成h:i:s格式。
$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;
類似於分鐘....
沒有更好的和簡單的方法來做到這一點?無論如何,我可以使用DateTime方法嗎?
https://eval.in/681782。這是你想要的嗎? –
不好,但應該工作:'$ string ='3小時45分鐘'; $ dateTime = DateTime :: createFromFormat('h \ h \ o \ ur i \ m \ i \ n \ u \ t \ e \ s',$ string); var_dump($ dateTime-> format('H:i:s'));' – swidmann
Abhishek Salian查看評論和答案,讓我們知道 –