使用laravel将日期值插入日期字段

l3zydbqr  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(324)

目前,我有一个表单上的日期字段,我希望能够插入正在编辑的当前记录的当前值。mysql数据库中没有记录缺少这个日期字段,但是由于某种原因,记录的值实际上不会加载到字段输入中,而是加载到输入字段的“值”部分。
目前,我的领域代码如下:

<input type="date" name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required value="{{$shipment->date}}">

下面是代码输出:

<input name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required="" value="2018-05-10 00:00:00" type="date">

但在我的浏览器中是这样的:

但是在我的mysql数据库表中,字段(这是一个日期字段)的格式如下:2018-05-12

tgabmvqs

tgabmvqs1#

html输入元素类型date将查找yyyy-mm-dd格式的值,因此必须更改值格式。
尝试以下操作:

<input 
    name="date" 
    id="date" 
    class="form-control" 
    style="width: 100%; display: inline;" 
    onchange="invoicedue(event);" 
    required=""
    value="{{ $shipment->date->format('Y-m-d') }}" 
    type="date">

https://developer.mozilla.org/en-us/docs/web/html/element/input/date

csbfibhn

csbfibhn2#

拉雷维尔利用碳,使像这样的任务绝对是在公园散步。把你的日期值像平常一样贴到你的控制器上,你所使用的输入是好的。
然后简单地用碳素格式化

$formattedDate = Carbon::parse($request->date)->format('Y-m-s');

您现在有了一个格式为2018-05-13的日期,这是sql的正确格式
你应该读一读碳文件,它可以做一些伟大的事情。
看看这里https://carbon.nesbot.com/docs/

mkh04yzy

mkh04yzy3#

对于日期,您可以在laravel check文档中使用变异符
然后你可以这样做:

class Shipment extends Model {

    protected $dates = ['date'];
}

然后你就可以简单地写了

<input type="date" name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required value="{{$shipment->date->format('m/d/Y')}}">

如果你不想使用laravels日期变异器,你可以使用你自己的类似的东西:

class Shipment extends Model
{
    /**
     * Set the date attribute.
     *
     * @param  string  $value
     * @return void
     */
    public function setDateAttribute($value)
    {
        $this->attributes['date'] = Carbon::parse($value)->format('m/d/Y');
    }
}

希望这有帮助。

相关问题