无法在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)代码>