0

SQLクエリからの2回を一緒に追加しようとしています。以下は私のコードです。

$taskID = $row['taskID'];
$startTimeRaw = $row['startTime'];
$endTimeRaw = $row['endTime'];
$everyMinutesRaw = $row['everyMinutes'];
$startTime = $startTimeRaw->format('H:i:s');
$endTime = $endTimeRaw->format('H:i:s');
$everyMinutes = $everyMinutesRaw->format('H:i:s');

#$latestRunTime = $startTime;
$latestRunTimeRaw = $startTime + $everyMinutes;


echo $startTime."<BR>";
echo $everyMinutes."<BR>";
echo $latestRunTime."<BR>";

このコードは以下を返します

06:05:00
00:15:00
6

返品の 3 行目は06:20:00です。この変更を行うにはどうすればよいですか。私はstrtotimeandで遊ん->format()だことがありますが、適切な答えが得られないようです。考え?

他の回答に含まれるデータで、私はこれを持っています

$latestRunTime = strtotime($startTime) + strtotime($everyMinutes);

そして、それは出力します

2733243600

それをフォーマットすると、次のようになります

Fatal error: Call to a member function format() on a non-object in 
4

2 に答える 2

1

この機能を使用します

function sum_the_time($time1, $time2) {
  $times = array($time1, $time2);
  $seconds = 0;
  foreach ($times as $time)
  {
    list($hour,$minute,$second) = explode(':', $time);
    $seconds += $hour*3600;
    $seconds += $minute*60;
    $seconds += $second;
  }
  $hours = floor($seconds/3600);
  $seconds -= $hours*3600;
  $minutes  = floor($seconds/60);
  $seconds -= $minutes*60;
  if($seconds < 9)
  {
  $seconds = "0".$seconds;
  }
  if($minutes < 9)
  {
  $minutes = "0".$minutes;
  }
    if($hours < 9)
  {
  $hours = "0".$hours;
  }
  return "{$hours}:{$minutes}:{$seconds}";
}

必要なときに関数を呼び出すだけで、どこでもこの関数を使用できます..ありがとう

于 2013-07-17T08:06:13.633 に答える
1

これはあなたが求めているもののようです:

<?php
$period = new DatePeriod(
        new DateTime('06:05:00'),
        DateInterval::createFromDateString('15 minutes'),
        new DateTime('07:00:00'));
foreach($period as $interval){
        echo $interval->format('c').PHP_EOL;
}

結果:

2013-04-22T06:05:00+02:00
2013-04-22T06:20:00+02:00
2013-04-22T06:35:00+02:00
2013-04-22T06:50:00+02:00

new DateInterval('PT15M')、またはより正式に次のように使用することもできます。

new DateInterval('PT'.$everyMinutesRaw->format('H\Hi\Ms\S'));

すべての間隔に興味がなく、例に従って最初の間隔だけが必要な場合:

 $startTimeRaw->add(new DateInterval('PT'.$everyMinutesRaw->format('H\Hi\Ms\S')));
 echo $startTimeRaw->format('H:i:s');
于 2013-04-22T18:21:25.390 に答える