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

时间:2017-12-30 09:28:10

标签: php mysql laravel php-carbon

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

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

但另一方面,前端开发人员要求我将所有日期作为2017-12-20T20:30:00.000Z返回。似乎这是JavaScript中的常见格式。

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

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

4 个答案:

答案 0 :(得分:3)

由于日期为“碳”,因此请使用format()

$date->format($desiredFormat);

创建$desiredFormat的{​​{3}}也会有所帮助。

答案 1 :(得分:2)

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

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

参考here

答案 2 :(得分:1)

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

默认laravel将'dateTime'作为碳实例

因此,您可以使用getter方法

更改模型中的格式
public function getDateTimeAttribute($value)
{
    $desiredFormat = "Y-M-d"; //change format as per your requirement
    $value->format($desiredFormat);
}
  

有关getter和setter方法的更多信息的链接

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

答案 3 :(得分:1)

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

它给了我们“2017年12月30日16:39 am” 你可以编辑你当然的日期时间(M j,Y h:ia)只是google它“php:date - manual”