Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在laravel 7.2.2中格式化日期时间_Laravel - Fatal编程技术网

无法在laravel 7.2.2中格式化日期时间

无法在laravel 7.2.2中格式化日期时间,laravel,Laravel,我目前在laravel 7.2.2工作,我正在尝试将以下datetime格式设置为'mdy' "created_at": "2020-03-23T12:17:29.000000Z", 以前,在laravel 6中,日期时间格式如下:2019-12-02 20:01:00。 但现在,日期格式发生了变化,如下所示:2020-03-23T12:17:29.000000Z 在laravel 6中,我使用以下代码格式化日期时间: foreach ($posts as $post) { $

我目前在
laravel 7.2.2
工作,我正在尝试将以下
datetime
格式设置为
'mdy'

"created_at": "2020-03-23T12:17:29.000000Z",
以前,在laravel 6中,日期时间格式如下:
2019-12-02 20:01:00
。 但现在,日期格式发生了变化,如下所示:
2020-03-23T12:17:29.000000Z

在laravel 6中,我使用以下代码格式化日期时间:

foreach ($posts as $post) {
        $createdAt = Carbon::parse($post['created_at']);
        $post['created_at'] = $createdAt->format('M d Y'); 
}
但是它给了我与上面相同的输出
2020-03-23T12:17:29.000000Z
。 那么,如何在laravel 7中设置日期时间格式呢。
有什么帮助吗?

这是在Laravel 7.0中引入的突破性更改。您仍然可以按您想要的方式格式化它

您可以覆盖模型上的
serializeDate
方法:

/**
 * Prepare a date for array / JSON serialization.
 *
 * @param  \DateTimeInterface  $date
 * @return string
 */
 protected function serializeDate(DateTimeInterface $date)
 {
     return $date->format('M d Y');
 }
有关更多信息,请参阅

HTH

您可以使用它将模型中的数据转换为API应该响应的数据。这样,您就不需要接触数据以及数据在模型中的保存方式

如果您的列名相同,它可能看起来像这样:

use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Request;

class Post extends JsonResource
{
    public function toArray(Request $request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'text' => $this->text,
            'created_at' => $this->created_at->format('M d Y'),
            'updated_at' => $this->updated_at->format('M d Y'),
        ];
    }
}

嗯。你有没有试过用一个新的型号——保存一个新的,然后输出日期?这是用于序列化的,其中引入了那些新的ISO日期。很抱歉,我没听清楚。我是否需要为此代码创建另一个模型?我在我现有的模型(即Post)中粘贴了上述代码。不,对不起。我的意思是-创建一个新的Post模型,并在覆盖到位的情况下运行代码。尝试创建一个新的Post模型,并在日期输出创建的_。无需解析-只需在处显示
$post->created_即可,即跳过解析并查看结果-日期将从模型中正确格式化,因此基本上我应该删除现有的帖子模型并创建一个新的帖子模型,然后检查它?不,不是模型。试试这个:
$post=post::create([xxx])
。然后在
字段中查看未经解析创建的
所显示的内容<代码>dd($post->created\u at)