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 版本中修复,但我们暂时使用了小型硬编码。
- nova/src/Fields/Date.php
instead: return $value->format('Y-m-d');
use this one: return $value->format('m/d/Y');
- nova/resources/js/components/Form/DateField.vue
In this vue component also should be changed a date format: dateFormat="m/d/Y".
- 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')
- 此外,如果您以另一种格式将数据存储在数据库中,则应在 App\Model class 中使用 Mutator。像这样:
public function setLastUsedAttribute($value){
$date = Carbon::createFromFormat('m/d/Y', $value);
$this->attributes['last_used'] = $date->format('Y-m-d');
}
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 版本中修复,但我们暂时使用了小型硬编码。
- nova/src/Fields/Date.php
instead: return $value->format('Y-m-d'); use this one: return $value->format('m/d/Y');
- nova/resources/js/components/Form/DateField.vue
In this vue component also should be changed a date format: dateFormat="m/d/Y".
- 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')
- 此外,如果您以另一种格式将数据存储在数据库中,则应在 App\Model class 中使用 Mutator。像这样:
public function setLastUsedAttribute($value){ $date = Carbon::createFromFormat('m/d/Y', $value); $this->attributes['last_used'] = $date->format('Y-m-d'); }