gpt4 book ai didi

php - 奇怪的日期格式,我在数据库中存储的两位数年份之前添加了前导零

转载 作者:行者123 更新时间:2023-11-29 15:41:30 25 4
gpt4 key购买 nike

我正在开发一个 Laravel 5.5 应用程序,并在 Laragon 中运行 MySQL 数据库。

数据库中存储的日期将两位数年份(例如“15”)转换为带前导零的四位数字(例如“0015”)。如果我的用户输入 2/1/12 表示 2012 年 2 月 1 日,则 2/1/0012 将存储在数据库中。

我在请求中有一个验证规则,如下所示:

public function rules()
{
return [
/* 'liability_last_payment_date' => 'nullable|date_format:'.config('app.date_format'), */
'liability_last_payment_date' => 'nullable|date_multi_format:"m/d/Y","mm/dd/yy","MM/DD/YYYY"',
'liability_account_balance' => 'nullable|numeric',
];
}

我已经调整了格式,但没有效果。

我的 Controller 不处理该格式,MySQL 数据库字段只是日期格式。

这是我的 Controller 代码:

   public function update(UpdateInstallmentsDebtsLiabilitiesRequest $request, $id)
{
if (! Gate::allows('installments_debts_liability_edit')) {
return abort(401);
}
$installments_debts_liability = InstallmentsDebtsLiability::findOrFail($id);

$installments_debts_liability->update($request->all());

return redirect()->back(); //return redirect()->route('admin.installments_debts_liabilities.index');
}

不知道为什么要这样存储日期,但怀疑验证规则(只是因为我更改验证格式后出现了此问题),但无法跟踪问题。

有什么建议吗?

最佳答案

只需在更新之前设置这样的日期即可

$input = $request->all();
if (!empty($input['liability_last_payment_date'])) {
$new_date = date_create_from_format("m/d/y",$input['liability_last_payment_date']);
$input['liability_last_payment_date'] = $new_date->format("Y-m-d");
}
$installments_debts_liability->update($input);

关于php - 奇怪的日期格式,我在数据库中存储的两位数年份之前添加了前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57585034/

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