Laravel Model受保护$ dateFormat - 如何删除秒?

时间:2016-01-29 19:01:28

标签: php mysql datetime timestamp laravel-5.1

平台:Laravel 5.1

数据库:MySQL

我还使用Fractal Transformers将我返回的数据转换为JSON对象。

将此protected $dateFormat = 'Y-m-d H:i';放入我的模型中(注意缺少的:s)碳会抛出错误:

exception 'InvalidArgumentException' with message 'Trailing data' in C:\project1\vendor\nesbot\carbon\src\Carbon\Carbon.php:425

根据文档,这应该有效:https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

我尝试过以下方法:

  • 将我的MySQL表格结构从TIMESTAMP更改为DATETIME - 无更改
  • 使用substr($time, 0, -3)更改返回值 - 出错
  • 在Gitter寻求帮助,得到了这个:
  

我可能正在使用不使用MySQL格式的不同持久性

     

这是什么意思?

如何确保Carbon::now()或MySQL在没有秒的情况下创建时间戳?

OR

如何仅返回Y-m-d H:i

2 个答案:

答案 0 :(得分:1)

您可以尝试以下

将以下代码放在您的模型上

 protected $casts = ['date_time'=>'date'];

对于碳使用以下

 Carbon::now()->format('Y-m-d H:i');

答案 1 :(得分:0)

访问器和更改器的帮助下,您可以根据需要设置时间戳的格式。

以下是created_at时间戳的示例:

`public function getCreatedAtAttribute($value)
 { 
      return $this->asDateTime($value)->format('Y-m-d H:i'); 
 }`

以下是带有时间戳格式稍有不同的update_at时间戳示例:

`public function getUpdatedAtAttribute($value)
 {
     return $this->asDateTime($value)->format('d/m/Y - H:i');
 }`