代码之家  ›  专栏  ›  技术社区  ›  Stan Barrows

laravelnova:将Datetime转换为可读输出

  •  0
  • Stan Barrows  · 技术社区  · 6 年前

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

    例如:

    Datetime

    代码:

       DateTime::make('Start')
                    ->rules('required')
                    ->sortable(),
    
    2 回复  |  直到 6 年前
        1
  •  4
  •   Shailendra Gupta    6 年前

    用这个,希望有用

    Date::make('start')->format('F j, Y'),
    
        2
  •  9
  •   r00t    6 年前

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

        3
  •  0
  •   Alexander Budovsky    5 年前

    我们也面临这样的问题。 此解决方案日期时间::make('Start')->格式('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类中使用Mutator。像这样:
        public function setLastUsedAttribute($value){
              $date = Carbon::createFromFormat('m/d/Y', $value);
              $this->attributes['last_used'] = $date->format('Y-m-d');
        }