2

これは簡単なはずですが、必要な時間形式が見つかりません。

値はデータベースから 240 として取得されます。これは 240 分を意味します。これをphp変数に保存して、phpが分であることを知るにはどうすればよいですか。スクリプトの後半でHH:MM値に追加できるようにするにはどうすればよいですか?

(回答の1つを反映するために、以下のコードを編集しました)

$startTime = new datetime($row['startTime']);  #08:07:00.0000000
$endTime = new datetime($row['endTime']);      #12:10:00.0000000
$everyMinutes = new dateInterval('P'.$row['everyMinutes'].'M'); #60?
$updatedTime = $startTime->add($everyMinutes); # this should read 09:07:00.0000000

入ってくる日付$rowはSQLから来ています。startTime と endTime はtime(7)データ型です

| taskID |    startTime     |     endTime      | freq |
|________|__________________|__________________|______|
|   1    | 08:07:00.0000000 | 12:10:00.0000000 |  60  |
|   2    | 08:10:00.0000000 | 17:40:00.0000000 |  30  |
|   3    | 08:40:00.0000000 | 14:49:00.0000000 |  60  |
|   4    | 08:43:00.0000000 | 14:49:00.0000000 |  60  |
|   5    | 09:05:00.0000000 | 15:05:00.0000000 |  180 |
|   6    | 10:00:00.0000000 | 22:00:00.0000000 |  5   |

このコードでは、2 つの問題のうちの 1 つが発生しています。new datetime()スローされたエラーはFatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object given'

new datetime()スローされたエラーがなければNotice: Object of class DateTime could not be converted to int

4

2 に答える 2

4

このページをお読みください。

$date = new DateTime($row['startTime']);
$myInterval = new DateInterval('P'.$row['everyMinutes'].'M');
$date->add($myInterval);
echo $date->format('Y-m-d') . "\n";
于 2013-04-16T11:17:10.073 に答える
0

この機能を使用する

function convertToHoursMins($time, $format = '%d:%d') {
settype($time, 'integer');
if ($time < 1) {
    return;
}
$hours = floor($time/60);
$minutes = $time%60;
return sprintf($format, $hours, $minutes);
}

このようにあなたの時間を過ごします

convertToHoursMins(240);
于 2013-04-16T11:20:01.323 に答える