嗨,我将值作为时间存储在 MSSQL 数据库中(7)
工作开始工作结束
我正在尝试使用 php 计算这两次之间的区别,我有以下代码
$start = $model->job_start;
$end = $model->job_end;
$diff = date( "h:i:s", strtotime($end) - strtotime($start) ) ;
echo $diff ;
但是输出是
03:06:00
而不是
00:06:00
顺便说一句,差异是 6 分钟(360 秒),任何人都可以帮助以正确的格式获取它以便我保存它吗?
此问题已被标记为重复,但这是一个不同的问题,因为它解决了使用日期函数时的特定时区问题。并且已经这样回答了。
编辑
我标记的代码回答了我提出的问题,但是我试图添加一个额外的计算,如下所示
$start = $model->job_start;
$end = $model->job_end;
$total = $model->customer->total_time;
//adding time difference to total time used for that customer
$dt = strtotime($total) + strtotime($end) - strtotime($start);
$hours = floor($dt / 3600);
$minutes = floor($dt / 60) - $hours * 60;
$seconds = $dt - $hours * 3600 - $minutes * 60;
// Padded values
$hours = str_pad($hours, 2, STR_PAD_LEFT, '0');
$minutes = str_pad($minutes, 2, STR_PAD_LEFT, '0');
$seconds = str_pad($seconds, 2, STR_PAD_LEFT, '0');
$output = "{$hours}:{$minutes}:{$seconds}" ;
//display
echo '<br> Start time : '. $start;
echo '<br> End time : '. $end;
echo '<br> total time + time difference : '. $output;
echo '<br> Total time for Customer : '. CHtml::encode($model->customer->total_time);
我正在尝试将总时间之间的差异添加到总时间变量但是当输出回显时,我得到了这个显示
Start time : 11:45:00.0000000
End time : 12:45:00.0000000
total time + time difference : 382015:00:00
Total time for Customer : 09:00:00.0000000
请注意,总时间+时差之前有额外的数字,这可能是我的一个简单错误,但我看不到它,任何帮助将不胜感激