Laravel Nova:将Datetime转换为可读的输出

时间:2018-10-30 08:47:04

标签: laravel laravel-5 laravel-nova

Laravel Nova中是否有一个选项可以显示可读的日期时间输出和/或限制输出?

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

Datetime

代码:

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

3 个答案:

答案 0 :(得分:2)

使用它,希望它能起作用

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

答案 1 :(得分:2)

根据文档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/

答案 2 :(得分:0)

我们也面临这样的问题。 这个解决方案DateTime :: make('Start')-> format('DD MMMM YYYY'),仅对索引页面有用,而对Edit页面没有帮助。 我不知道何时会在新的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类中使用Mutator。像这样:

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