我正在使用 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。在这种情况下我该怎么办?
答案 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方法的更多信息的链接
答案 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”