gpt4 book ai didi

php - 使用 Carbon 将时间字段添加到当前日期字段

转载 作者:行者123 更新时间:2023-12-05 06:31:06 26 4
gpt4 key购买 nike

问题:我正在 Laravel 中制作某种待办事项应用程序,因此对于用户创建的每个待办事项,用户都会有一个给定的时间来指示何时- do 必须完成。现在我有 2 个输入字段,1 个用于日期,1 个用于特定时间。我想将时间输入添加到日期输入中,完成后我希望将其存储在数据库中

问题:如何将我的时间字段值添加到我的日期值?

代码:

输入字段:

{{Form::date('date', \Carbon\Carbon::today(),['class' => 'form-control mb-2 mr-sm-2 mb-sm-0'])}}
{{Form::time('time', \Carbon\Carbon::now()->timezone('Europe/Brussels')->format('H:i'),['class' => 'form-control'])}}

当用户想要添加任务时我的商店功能:

 public function store(Request $request)
{

$this ->validate($request, ['title' => 'required|max:25','description' => 'required|max:60']);

$task = new Task;
$task -> title = $request->input('title');
$task -> description = $request->input('description');
$task -> end_date = $request->input('date');
$task -> user_id = auth()->id();
$task->save();

return redirect('/tasks')->with('success', 'Task created');
}

我尝试操纵“end_date”属性的 Task.php 模型:

    public function setEndDateAttribute($date) 
{

$this->attributes['end_date'] = Carbon::createFromFormat('Y-m-d', $date);

}

我得到的结果:日期被添加到数据库中,但是通过上述函数我得到了创建任务的日期+当前时间。我想用我输入的时间值替换当前时间

最佳答案

你必须改变格式,

Carbon::createFromFormat('Y-m-d', $date);

只会得到您输入的年、月和日,但您还需要时、分(也许还有秒)。所以你必须像这样改变你的代码:

Carbon::createFromFormat('Y-m-d H:i:s', $date);

无论如何,如果您在模型中设置 $dates 属性,我认为这对您来说更容易,请查看 official documentation :

/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = ['deleted_at'];

如果您将您的列添加到此数组,将自动返回一个 Carbon\Carbon 对象。

更新:

在您的表单中,您有 2 个输入:datetime,因此您有 2 个选项:

  • 就像我在评论中所说的那样,不要使用表单生成器
  • 将这 2 个输入合并到一个 Carbon 对象中...

因此您的代码必须更改为:

$task -> end_date = $request->input('date');

到:

$task -> end_date = $request->input('date') . ' ' . $request->input('time');

并且您的修改器必须如上所述进行更改。

关于php - 使用 Carbon 将时间字段添加到当前日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com