PHP 时间无法正确转换/保存

虽然没有想法,但这里可能是一个简单的!


我有一个简单的时间计算;


$total_hours_work_cal = ($end_time_name - $start_time_name - $total_break_name);


这确实带回了正确的值,例如以下内容;


开始时间 = 08:00

结束时间 = 12:00

返回的值为 4,我希望将其保存为 04:00,尽管它只是将其保存为 4,然后在我的数据库中显示为 00:00:04.000000。


我需要它在数据库中显示为 04:00:00.000000 但我终究无法弄清楚。


有任何想法吗?


编辑


$startTime = new DateTime("$start_time_name");

$endTime = new DateTime("$end_time_name");

$endTime->sub(date_interval_create_from_date_string("$total_break_name"));

$interval = date_diff($endTime, $startTime);

echo $interval->format('%H:%I:%S'), PHP_EOL;

对此的计算是;


结束时间 = 10:00

开始时间 = 05:00

休息时间 = 00:30

但它只返回 05:00 而不是预期的 04:30


慕村225694
浏览 96回答 1
1回答

跃然一笑

值 4 代表秒,而不是 4 小时。秒乘以 3600 得到小时。但是您应该更好地使用 PHP 内部日期函数。$startTime = new DateTime('08:00');$endTime = new DateTime('12:00');$endTime->sub(date_interval_create_from_date_string('10 minutes'));$interval = date_diff($endTime, $startTime);echo $interval->format('%H:%I:%S'), PHP_EOL;$startTime = new DateTime('08:00');$endTime = new DateTime('12:30');$endTime->sub(date_interval_create_from_date_string('15 minutes'));$interval = date_diff($endTime, $startTime);echo $interval->format('%H:%I:%S'), PHP_EOL;03:50:0004:15:00以休息时间作为时间字符串更新我们用结束时间减去休息时间。我们从剩下的内容中减去开始时间并得到有效工作时间。$startTime = new DateTime('08:00');$endTime = new DateTime('12:30');$breakTime = new DateTime('00:15');$breakSubtracted = new DateTime($endTime->diff($breakTime)->format('%H:%I:%S'));$workTime = date_diff($breakSubtracted, $startTime)->format('%H:%I:%S');echo $workTime;04:15:00
打开App,查看更多内容
随时随地看视频慕课网APP