2

PHPを使用して、「1時間10分」の文字列を次の形式01:10:00に変換する方法。これは私がやったことです -echo date('H:i:s',strtotime('1 hour and 10 min'));
出力は -01:00:00

4

6 に答える 6

4

常にそこにあるhour and minと仮定して(強調)、使用できますsscanf

$text = "1 hour 10 min";
list($hour, $min) = sscanf($text, "%d hour %d min");
echo 
   str_pad($hour, 2, '0', STR_PAD_LEFT) . ':' . 
   str_pad($min, 2, '0', STR_PAD_LEFT) . 
   ':00';
于 2012-05-16T09:58:31.227 に答える
1
php > preg_match('/^(\d+)\shour[^\d]+(\d+)\smin.+$/i', '1 hour and 10 minutes', $matches);
php > echo str_pad($matches[1], 2, '0', STR_PAD_LEFT).':'.str_pad($matches[2], 2, '0', STR_PAD_LEFT).':00';
01:10:00
于 2012-05-16T09:59:34.410 に答える
1
$time = '1 hour and 10 min';

$arr = explode( ' ', $time);

if ( count($arr) > 2) {
 echo date( 'H:i:s', strtotime($arr[0] . ':' . $arr[count($arr)-2]));
} else {
    echo $arr[1] == 'hour' ? date( 'H:i:s', strtotime($arr[0] . ':' . '00')):
    date( 'H:i:s', strtotime(00 . ':' . $arr[0]));
}
于 2012-05-16T09:54:53.067 に答える
1

strtotime function のPHPドキュメントの例を見るとand、問題の原因となっている単語のようです。

入力文字列がどこから来ているのかわかりませんが、除外することはできますかand(つまり、 だけを持ってい1 hour 10 minますか)?

于 2012-05-16T10:36:49.460 に答える
-3

これを試して

$string="1 時間 10 分";

echo preg_replace("/[az\s]+/",":",$string)."00

于 2012-05-16T09:52:17.433 に答える