【问题标题】:Carbon create from timestamp碳从时间戳创建
【发布时间】:2017-09-28 19:29:53
【问题描述】:

我正在尝试转换一些日期

<p>{{  Carbon\Carbon::parse($post->created_at)->diffForHumans()  }}</p>

这很好用,因为日期格式为 2017-05-01 10:52:51

不过,我也将日期存储为 unix 时间戳。

如何将这些转换为日期?

我已经试过了

{{  Carbon\Carbon::createFromTimestamp($post->created_at)->toDateTimeString()  }}

错误 - 遇到格式不正确的数值

转储是

 <pre class="xdebug-var-dump" dir="ltr">
<small>int</small> 
<font color="#4e9a06">1493637826</font>
    </pre>

【问题讨论】:

  • 这是我已经尝试过的 Carbon\Carbon::createFromTimestamp($post->created_at)->toDateTimeString() }}
  • 对此不满意?
  • 嗨罗比,不,这是我认为它会工作的方式,并在之前查看了文档。它似乎只适用于 1 或 -1 作为参数。
  • 您能分享一些来自$post-&gt;created_at 值的示例数据吗? (var_export)
  • 添加,是整数。

标签: php laravel date php-carbon


【解决方案1】:

您第一次尝试使用createFromTimestamp() 是正确的,因此您的输入一定有问题。这是一个工作示例:

>>> \Carbon\Carbon::createFromTimestamp(1493637826)->toDateTimeString();
=> "2017-05-01 11:23:46"

您遇到的错误表明您传入的是 DateTime 字符串,而不是 unix 时间戳:

>>> \Carbon\Carbon::createFromTimestamp('2017-05-01 11:23:46')->toDateTimeString();
PHP Notice:  A non well formed numeric value encountered

【讨论】:

    【解决方案2】:

    最后我不得不使用 gmdate 来转换时间戳。

    {{  Carbon\Carbon::parse(gmdate("Y-m-d\TH:i:s", $post->date_posted))->diffForHumans()  }}
    

    这很奇怪,因为它应该按照 Robbie Averill 建议的方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-03
      • 2017-09-30
      • 2020-03-01
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多