php - 如何在laravel中减去并获得时间输入之间的差异?
问题描述
我正在 laravel 中构建一个小应用程序,该应用程序有一个日期和时间输入,我用它来计算给定任务的价格。我已经成功计算了日期差异,现在我正在尝试获取两个选定时间之间的差异,即 PM 和 AM 格式,但我被卡住了。我想要实现的是,当用户选择时间时,如下例所示;我得到了小时的时差,如果是 3 小时或更多小时,我会给予一定的惩罚,请帮忙!
array:4 [▼
"pickup_date" => "2019-09-13"
"pickup_time" => "11:37 AM"
"dropoff_date" => "2019-09-14"
"dropoff_time" => "10:37 PM"
]
解决方案
你可以使用卡本diff()
在修补程序中,它会像
$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.5 — cli) by Justin Hileman
>>> \Carbon\Carbon::parse('2019-09-13 11:37 AM')->diff(\Carbon\Carbon::parse('20
19-09-11 10:23 PM'))
=> DateInterval {#3080
interval: - 1d 13:14:00.0,
}
>>>
您可以在代码中使用它。
小时差异
> \Carbon\Carbon::parse('2019-09-13 11:37 AM')->diffInHours(\Carbon\Carbon::parse('2019-09-11 10:2
3 PM'))
=> 37
你的 if 条件可以是
$diff = \Carbon\Carbon::parse('2019-09-13 11:37 AM')->diffInHours(\Carbon\Carbon::parse('2019-09-11 10:2
3 PM'));
接着
if ( $diff > 3 ) {
// do something
} else {
// do something else
}
推荐阅读
- google-api - 请求与谷歌驱动器的身份验证范围不足
- netbeans - Netbean 12.0,如何生成包的类图和/或序列图
- javascript - $('#input5').val(total) return input:157 指定值“1.234.567”无法解析,还是超出范围?
- android - 如何识别唯一登录用户以进行应用内购买?
- javascript - 将电子表格上不同工作表的列数与应用程序脚本进行比较的脚本
- python - ModuleNotFoundError:没有名为“keras.engine.sequential”的模块
- java - 子矩形的数量
- c# - 如何更新 Microsoft.Isam.Esent.Interop?
- python - 在python中使用for循环更新json属性值?
- reactjs - 道具功能在一个组件中有效,但在同一类的另一个组件中无效