php - 如何比较laravel中的两个日期
问题描述
我在 Laravel 控制器中将输入日期与今天进行比较:
$start_date = Carbon::parse($request->get('start_date'))->format('Y-m-d');
$today = Carbon::now()->format('Y-m-d');
if ( $start_date < $today ){
dd('smaller');
}
else {
dd('bigger');
}
这够了吗 ?或者我需要使用这样的东西:$result = $start_date->lt($today);
解决方案
当你用 Carbon 解析了两个日期后,就很简单了,你只需要使用 Carbon 方法:
https://carbon.nesbot.com/docs/#api-comparison
在你的情况下:
if ( $start_date->lessThanOrEqualTo($today) ){
dd('smaller');
}
else {
dd('bigger');
}
只需点击我发送给您的 Carbon Link,您将看到所有可用的比较方法:
其他方法:
$first->setDateTime(2012, 1, 1, 0, 0, 0);
$second->setDateTime(2012, 1, 1, 0, 0, 0); // Remember tz is 'America/Vancouver'
var_dump($first->equalTo($second)); // bool(false)
var_dump($first->notEqualTo($second)); // bool(true)
var_dump($first->greaterThan($second)); // bool(false)
var_dump($first->greaterThanOrEqualTo($second)); // bool(false)
var_dump($first->lessThan($second)); // bool(true)
var_dump($first->lessThanOrEqualTo($second)); // bool(true)
// All have short hand aliases and PHP equivalent code:
var_dump($first->eq($second)); // bool(false)
var_dump($first->equalTo($second)); // bool(false)
var_dump($first == $second); // bool(false)
var_dump($first->ne($second)); // bool(true)
var_dump($first->notEqualTo($second)); // bool(true)
var_dump($first != $second); // bool(true)
var_dump($first->gt($second)); // bool(false)
var_dump($first->greaterThan($second)); // bool(false)
var_dump($first->isAfter($second)); // bool(false)
var_dump($first > $second); // bool(false)
var_dump($first->gte($second)); // bool(false)
var_dump($first->greaterThanOrEqualTo($second)); // bool(false)
var_dump($first >= $second); // bool(false)
var_dump($first->lt($second)); // bool(true)
var_dump($first->lessThan($second)); // bool(true)
var_dump($first->isBefore($second)); // bool(true)
var_dump($first < $second); // bool(true)
var_dump($first->lte($second)); // bool(true)
var_dump($first->lessThanOrEqualTo($second)); // bool(true)
var_dump($first <= $second); // bool(true)
推荐阅读
- excel - 仅允许根据相邻的基于逗号的单元格填充数据
- node.js - Vue.js 和 ES7:ReferenceError:未定义 RegeneratorRuntime
- user-interface - Keyboard covers TextField in Flutter
- python - 将 3D numpy 数组乘以 2D numpy 数组
- excel - 运行时错误“1004”。Excel 无法访问“下载”。文档可能是只读的或加密的
- javascript - Syncfusion Vuejs 数据透视表
- r - 将 000 转换为 K
- java - 如何从 viewHolder 中的 Asynctask 获取结果?
- java - 从对象列表中获取最大值
- angular - 角度测试 - 表单输入 type="number" 应该只接受数字