Laravel Nova:将日期时间转换为可读输出

Laravel Nova: Convert Datetime to readable output

Laravel Nova 中是否有显示可读日期时间输出的选项and/or 限制输出?

例如: 2018 年 10 月 29 日 / 2018 年 11 月 11 日,12:10 上午

代码:

   DateTime::make('Start')
                ->rules('required')
                ->sortable(),

用这个,希望它有用

Date::make('start')->format('F j, Y'),

根据文档https://nova.laravel.com/docs/1.0/resources/fields.html#datetime-field

use Laravel\Nova\Fields\DateTime;

DateTime::make('Start')->format('DD MMMM YYYY'),

必须使用 Moment.js 格式规则 https://momentjs.com/docs/#/displaying/format/

我们也遇到过这样的问题。 此解决方案 DateTime::make('Start')->format('DD MMMM YYYY'),仅对索引页面有帮助,但对编辑页面没有帮助。 我不知道这个错误什么时候会在新的 Nova 版本中修复,但我们暂时使用了小型硬编码。

    1. nova/src/Fields/Date.php
 instead: return $value->format('Y-m-d');
 use this one: return $value->format('m/d/Y');
    1. nova/resources/js/components/Form/DateField.vue
 In this vue component also should be changed a date format: dateFormat="m/d/Y".
    1. nova/resources/js/components/Form/DateField.vue
 For placeholder method use this one:
     return this.field.placeholder || moment().format('MM/DD/YYYY')
Instead this:
     return this.field.placeholder || moment().format('YYYY-MM-DD')
    1. 此外,如果您以另一种格式将数据存储在数据库中,则应在 App\Model class 中使用 Mutator。像这样:

    public function setLastUsedAttribute($value){
          $date = Carbon::createFromFormat('m/d/Y', $value);
          $this->attributes['last_used'] = $date->format('Y-m-d');
    }