【问题标题】:Laravel Model protected $dateFormat - How to remove seconds?Laravel Model protected $dateFormat - 如何删除秒?
【发布时间】:2016-05-07 15:13:56
【问题描述】:

平台:Laravel 5.1

数据库:MySQL

我还使用分形转换器将返回的数据转换为 JSON 对象。

将这个protected $dateFormat = 'Y-m-d H:i'; 放入我的模型后(注意缺少的:s)Carbon 抛出错误:

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 格式的不同 Persistence

这是什么意思?

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

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

【问题讨论】:

  • 你找到答案了吗?

标签: php mysql datetime timestamp laravel-5.1


【解决方案1】:

你可以试试下面的

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

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

对于碳使用以下

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

【讨论】:

  • 不高兴。必须使用以下内容,但现在不包括 timezone_typetimezonepublic function getCreatedAtAttribute($value){ return $this->asDateTime($value)->format('Y-m-d H:i'); }
【解决方案2】:

Accessor & mutators 的帮助下,您可以随意格式化时间戳。

以下是 created_at 时间戳的示例:

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

这里是一个updated_at时间戳的例子,格式有点不同:

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

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2019-02-10
    相关资源
    最近更新 更多