0

データベースから出力された総時間数を取得したいのですが、問題は値が文字列形式であることです

値の例:

9H:20M
3H:13M
3H:50M
6H:30M

TOTAL:22H:53M

すべての値の合計を取得して後で表示したいのですが、文字列から数値を分離して時刻形式に変換する方法がわかりません。結果を得る方法はありますか?値とデータの変換と分離のための php スクリプトの使用をお探しですか?

4

2 に答える 2

2

strtotime または新しい DateTime クラスを使用できますが、現在の形式には互換性がないため、事前に変更する必要があります。これは可能な解決策です:

<?php
$result = 0;
$times = array('9H:20M','3H:13M','3H:50M','6H:30M');
foreach($times as $time) {
    preg_match('/^(\d{1,2})H[:]([0-5][0-9])M$/',$time, $m);
    $timestamp = strtotime($m[1].':'.$m[2]);
    $result+=$timestamp;
}
echo date('H:i',$result);
?>

これに対するより良いアプローチは、DB から直接合計時間を grep することだと思います。

于 2012-12-27T19:14:16.000 に答える