如何通过 Carbon laravel 将 DateTime 格式更改为所需格式

How to change DateTime format to a desired format via Carbon laravel

我正在使用 laravel 5.5Carbon 库编写 API.

我将所有日期和时间值存储在 MySQL 数据库中作为通用 YYYY-MM-DD HH:MM:SS 格式。

但另一方面,前端开发人员要求我将所有日期 return 设为 2017-12-20T20:30:00.000Z。似乎这是 JavaScript.

中的常见格式

有没有办法通过 laravel 或 Carbon 将所有 DateTime 格式的字段转换为所需的格式?

更新:
第一个问题已解决,但另一个问题是客户端希望为 table 的所有字段发送相同的日期时间 2017-12-20T20:30:00.000Z。而我应该获取并将它们保存为常见的 DateTime。在这种情况下我能做什么?

由于日期被转换为 Carbon,所以使用 format():

$date->format($desiredFormat);

用于创建 $desiredFormatlist of characters 也会有所帮助。

Javascript 使用 ISO 8601 语法。在PHP中,你可以这样使用:

date('c', strtotime($yourDateTime));   // c is ISO 8601 format

引用here:

Laravel 为格式 Eloquent 属性值提供 getter 和 setter 方法

默认laravelreturn'dateTime'作为carbon实例

因此,您可以使用 getter 方法更改模型中的格式

public function getDateTimeAttribute($value)
{
    $desiredFormat = "Y-M-d"; //change format as per your requirement
    $value->format($desiredFormat);
}

Link for more about getter and setter method

https://laravel.com/docs/5.5/eloquent-mutators

{{ 日期('M j, Y h:ia', strtotime($created_at)) }}

它让我们喜欢 "Dec 30, 2017 16:39am" 您当然可以编辑日期时间(M j, Y h:ia) 只是 google 它 "php: date - manual"