【问题标题】:Can't echo laravel 'created_at' timestamp value, displays Jan 1, 1970 instead无法回显 laravel 'created_at' 时间戳值,改为显示 1970 年 1 月 1 日
【发布时间】:2018-08-10 23:59:57
【问题描述】:

每个 laravel 迁移都附带一个内置的“created_at”时间戳列,该列会自动填充您的请求。当试图访问这个值时,我提供了一个 '01/01/1970' 值。有人可以帮忙吗?我已经安装了 Carbon 并遵循了类似问题的建议,但没有产生积极影响。

<h3>Date Created:</h3>
    <p>{{ date('d/m/Y', $project['created_at']) }}</p>

以变量为目标

$project->created_at

反而会产生相同的结果。

【问题讨论】:

  • date 接受 unix 时间戳作为第二个参数,laravel 不使用 db 中的 unix 时间戳
  • date("format", strtotime($project-&gt;created_at)); 应该可以工作,但它应该已经是Carbon 变量,所以-&gt;format("format") 是更好的方法。
  • 这仍然返回 1/1/1970 hmmmm
  • 如果您的 $project['created_at'] 未设置,则 date 会将其视为 0,即 1970 年 1 月 1 日的 unix 时间戳。验证 created_at 是否已设置。如果 Eloquent 正在创建模型,这应该会自动发生,但如果您通过插入创建它,则不会。
  • 数据库中的日期是什么?你能做 DB::table('project')->select('created_at')->where('id', id)->get() 吗?这样我们就可以看到您在数据库中拥有的内容。如果你有 phpmyadmin 看看那里

标签: php mysql database laravel timestamp


【解决方案1】:

Laravel 默认将日期字段转换为 Carbon 对象。

根据 Carbon 文档,您可以使用适当的 getter 获取时间戳。在这种情况下,它应该是:

$project->created_at->timestamp

【讨论】:

  • 我现在收到错误“尝试获取非对象的属性”
  • 你确定created_at不为空吗?
  • timestmap 或时间戳? [sp]
  • $project->created_at->timestamp ??当 created_at 为 null 时,php7.1 中的 null 将给出 null
【解决方案2】:

改用format()

{{ $project->created_at->format('d/m/Y') }}

【讨论】:

  • 现在我得到这个错误:调用一个成员函数 format() on null .../resources/views/confirm.blade.php)
  • @MichaelTrieb 表示created_at 属性为null,因此您可能需要检查数据库中的数据。如果时间戳在那里,请确保您没有使用任何访问器,您没有覆盖模型中的 $dates 属性,并且您正在为 created_at 使用正确的列类型
  • 我很确定他在数据库中将 created_at 的值设置为 null..
猜你喜欢
  • 2020-02-15
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多