日期时间变量 Laravel

datetime Mutator Laravel

我想转换我在 mi 数据库中的日期字段,以不同的格式显示它们。 在数据库中,日期字段以 'y-m-d' 格式存储,但我想以 'd-m-y' 格式显示它们。 我确实找到了一个特征(torzer 突变器),这就是我想要的,但我需要知道如何在不指定要进行转换的列的情况下执行此操作,这是一种自动检测具有日期字段的列的方法.

我知道这可能没有意义,但我的老板想减少这方面的代码,不幸的是我还没有找到类似的东西。

<?php

use Torzer\Common\Traits\MapDateTimeMutator;

class MyClass extends Model {

use MapDateTimeMutator;

protected $mapDateTimeMutator = [
    'start_date' => ['from' => 'd/m/Y', 'to' => 'Y-m-d'],
    'finish_date' => ['from' => 'd/m/Y', 'to' => 'Y-m-d']
];

protected $dates = [
    'approved_at', 'start_date', 'finish_date'
];

...

这就是 Torzer 突变器的工作方式。

Carbon 是一个很好的库。

此外,我不知道您是如何设置模型的,但我的示例是基于 laravel 的文档

Use Carbon\Carbon;

//where 'Date' = your attribute name
//so after you do something like a $m = model::find() and reference
//$m->date it will mutate it
public function getDateAttribute($value) {
    return Carbon::parse($value)->format('d-m-Y');
}

碳文档: https://carbon.nesbot.com/docs/