Article クラスに次の日付ミューテーターがあります。
class Article extends Eloquent{
protected $dates = ['published_at', 'end_at'];
public function getPublishedAtAttribute($value)
{
return Carbon::parse($value)->format('d M Y H:i');
}
public function getEndAtAttribute($value)
{
return Carbon::parse($value)->format('d M Y H:i');
}
}
次のように、新しい記事を作成するときに、datetimepicker を使用してデフォルト値を今日の日付に設定しています。
$('#published_at').datetimepicker({
showTodayButton: true,
format: 'D MMM YYYY HH:mm',
defaultDate: moment().hours(0).minute(0)
})
$('#end_at').datetimepicker({
showTodayButton: true,
format: 'D MMM YYYY HH:mm',
defaultDate: moment().add(30, 'days').hours(23).minute(59)
})
私のフォームでは、published_at および end_at 入力フィールドは次のとおりです。
{!! Form::text('published_at', null, ['id' => 'published_at', 'class' => 'form-control']) !!}
{!! Form::text('end_at', null, [ 'id' => 'end_at', 'class' => 'form-control']) !!}
ただし、日時は両方の入力フィールドで今日の日時に設定されています。published_at の日時を今日の午前 0 時に設定し、end_at を今日の日時から 30 日後に設定する必要があります。日付ピッカーのデフォルトは、編集操作であれば問題ない日付アクセサー メソッドによってオーバーライドされているようです。しかし、新しい記事を作成するときは、datetimepicker ウィジェットで定義された日付に従ってデフォルトにする必要があります。
誰でもこれを修正する方法を知っていますか?