Laravel 特定数据的碳变化日期
Laravel Carbon change date to specific data
如何改变f.e。现有日期变量中只有月份和日期(object ?)?
我在数据库中有日期类型字段:
$table->date('start');
$table->date('end');
然后我想在blade视图中根据特殊情况进行更改。
@if (Carbon\Carbon::parse($date->start)->month < Carbon\Carbon::parse($date->end)->month && Carbon\Carbon::now()->month != Carbon\Carbon::parse($date->start)->month)
@php
$date->start = date('Y-m-d', '05');
@endphp
@endif
以上代码将日期更改为类似 "1970-01-01"
的日期。年份可以保留在当前变量中,但我需要知道如何仅更改当前日期的月份和日期。
例如,如果我检查当前日期月份不等于变量,那么我将日期更改为当前月份。
可能吗?
您可以使用 setter 和 format
(继承自 DateTime
的方法):
$date->start = Carbon\Carbon::parse($date->start)->startOfMonth()->setMonth(5)->setDay(13)->format('Y-m-d');
但我会警告模板内部的值发生变化,这听起来像 anti-pattern。更喜欢创建其他变量,如 $formattedDateStart
以保持内容清洁和原始数据未修改。
或者您可以仅在需要显示时调用 ->format()
方法,而不实际将此结果存储在任何地方。
编辑:->startOfMonth()
添加以避免在所选月份的当天不可用时出现问题。
如何改变f.e。现有日期变量中只有月份和日期(object ?)?
我在数据库中有日期类型字段:
$table->date('start');
$table->date('end');
然后我想在blade视图中根据特殊情况进行更改。
@if (Carbon\Carbon::parse($date->start)->month < Carbon\Carbon::parse($date->end)->month && Carbon\Carbon::now()->month != Carbon\Carbon::parse($date->start)->month)
@php
$date->start = date('Y-m-d', '05');
@endphp
@endif
以上代码将日期更改为类似 "1970-01-01"
的日期。年份可以保留在当前变量中,但我需要知道如何仅更改当前日期的月份和日期。
例如,如果我检查当前日期月份不等于变量,那么我将日期更改为当前月份。
可能吗?
您可以使用 setter 和 format
(继承自 DateTime
的方法):
$date->start = Carbon\Carbon::parse($date->start)->startOfMonth()->setMonth(5)->setDay(13)->format('Y-m-d');
但我会警告模板内部的值发生变化,这听起来像 anti-pattern。更喜欢创建其他变量,如 $formattedDateStart
以保持内容清洁和原始数据未修改。
或者您可以仅在需要显示时调用 ->format()
方法,而不实际将此结果存储在任何地方。
编辑:->startOfMonth()
添加以避免在所选月份的当天不可用时出现问题。