我正在开发一个时钟应用程序。
当员工打卡上类时,当前日期和时间将保存为分配给变量 $clockin_time 的时间戳。当员工下类时,当前日期和时间将保存为分配给变量 $clockout_time 的时间戳。然后,我使用一些数学方法来计算两个时间戳之间的持续时间,以查看该员工在 Clockin_time 和 Clockout_time 之间工作了多长时间。所有这些都运行良好。
我们公司的发薪期是从每周的星期四到下周的星期四,因此星期四午夜是当前发薪期的截止时间。不过,我们有员工从晚上 7 点到凌晨 5 点在墓地工作。如果员工从周三晚上 7 点工作到周四早上 5 点,则午夜之前的所有工作时间应添加到上一个工资周期中,午夜之后的所有工作时间应添加到下一个工资周期中。
我的问题是,如果一名员工在周三晚上上类并在周四早上下类,并且我有他们的开始时间和结束时间作为时间戳,我如何计算出他们周三工作了多少小时以及多少小时他们星期四工作吗?
最佳答案
你一定要检查https://carbon.nesbot.com/docs/
文档中的小示例:
$mutable = Carbon::now();
$immutable = CarbonImmutable::now();
$modifiedMutable = $mutable->add(1, 'day');
$modifiedImmutable = CarbonImmutable::now()->add(1, 'day');
var_dump($modifiedMutable === $mutable); // bool(true)
var_dump($mutable->isoFormat('dddd D')); // string(11) "Saturday 26"
var_dump($modifiedMutable->isoFormat('dddd D')); // string(11) "Saturday 26"
// So it means $mutable and $modifiedMutable are the same object
// both set to now + 1 day.
var_dump($modifiedImmutable === $immutable); // bool(false)
var_dump($immutable->isoFormat('dddd D')); // string(9) "Friday 25"
var_dump($modifiedImmutable->isoFormat('dddd D')); // string(11) "Saturday 26"
// While $immutable is still set to now and cannot be changed and
// $modifiedImmutable is a new instance created from $immutable
// set to now + 1 day.
$mutable = CarbonImmutable::now()->toMutable();
var_dump($mutable->isMutable()); // bool(true)
var_dump($mutable->isImmutable()); // bool(false)
$immutable = Carbon::now()->toImmutable();
var_dump($immutable->isMutable()); // bool(false)
var_dump($immutable->isImmutable()); // bool(true)
关于php - 如何计算两个时间戳之间午夜前后的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411333/