【问题标题】:How do I convert this time format - 1480550400000+0000 in Y/m/d date format using php如何使用 php 转换此时间格式 - Y/m/d 日期格式的 1480550400000+0000
【发布时间】:2017-01-11 05:18:14
【问题描述】:

我正在尝试使用 php date('Y/m/d',1480550400000+0000) 将这次 format - 1480550400000+0000 转换为 Y/m/d 日期格式;但它不工作。我怎样才能让它发挥作用?

【问题讨论】:

  • 它会正常工作的。
  • @KinjalMistry 不,它不起作用。日期期望第二个整数
  • @KrisRoofe 它是整数。我也试过这个。
  • @Suchit nope,这个的strtotime返回false,strtotime使用字符串参数
  • @SimplifysTeam 有什么问题?

标签: php timestamp datetime-format


【解决方案1】:

你的时间戳有微秒,所以先把它去掉。

<?php
$timestamp = 1480550400000+0000;
$timestamp = intval($timestamp/1000);
$date = date("Y/m/d", $timestamp);
echo $date;

输出:检查live demo

ei@localhost:~$ php test.php
2016/12/01

【讨论】:

    【解决方案2】:
    $dig_date= 1480550400000+0000;
    $date = DateTime::createFromFormat('YmdGis', $dig_date);
      echo $date->format('Y-m-d G:i:s');
    

    【讨论】:

    • G:i:s 是时间,日期是 YYYY-MM-DD
    【解决方案3】:

    请注意,第二个参数应该以自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来的 秒数 为单位测量的时间。看起来您已经输入了毫秒数。

    PHP date()

    字符串日期(字符串 $format [, int $timestamp = time() ])

    时间戳

    可选的时间戳参数是一个整数 Unix 时间戳,如果没有给出时间戳,则默认为当前本地时间。换句话说,它默认为 time() 的值。

    试试这个:

    echo date('Y/m/d',1480550400+0000); // 2016/11/30
    

    【讨论】:

    • 为什么要去掉 + 之前的 0000
    • 因为时间应该以秒为单位。问题中发布的以毫秒为单位。
    【解决方案4】:

    已解决,我只是将其除以 1000。$date = date("Y-m-d", $timestamp/1000);它奏效了

    谢谢

    【讨论】:

      【解决方案5】:

      @Symplifys 试试这个:

      <?php
          $date = date("Y-m-d", "1480550400000+0000");``
          echo $date;
      ?>
      

      记得把时间戳放在双引号中。

      http://phpfiddle.org/试试这个代码

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-16
        • 1970-01-01
        • 2012-07-21
        • 1970-01-01
        相关资源
        最近更新 更多