2017-04-19 77 views

回答

3

是的,創建一個格式字符串,使用DateTime類從使用方法createFromFormat的格式解析。這真是一個神奇的課程!

PHP.net對這個優秀的文檔:http://php.net/manual/en/datetime.createfromformat.php

他們甚至有一個例子靠近你的具體問題,你只需要調整它一下:

$mytime = '23h15m03s'; 
    echo DateTime::createFromFormat('H\hi\ms\s',$mytime)->format('H:i:s'); 

如果你有一個偶爾會有部分掉落(例如你的例子中的幾小時),你需要使用格式來讓它起作用。

+1

@webDev看起來像它會適用於這種情況,但你將如何處理這個例子:'22m55s'。你需要一些額外的邏輯('strtotime()'會把它看作'hh:mm',你會得到22:55:00不是00:22:55) – Ray

+0

你是對的@Ray,我沒想到關於這一點,我已經做了簡單的調整,請你看看,讓我知道這是否會工作,非常感謝你 – webDev

+0

當然,它會工作,但我永遠不會推薦它!如果你正在使用正則表達式路線,你可能會想出一個單一的表達式來涵蓋這兩種情況。 – Ray