【问题标题】:php: convert milliseconds to datephp:将毫秒转换为日期
【发布时间】:2010-10-08 03:53:19
【问题描述】:

我有一个等于日期的字符串,表示为自 Unix 纪元以来的毫秒数。

我正在尝试将其输出到 d-m-Y。

我得到的字符串是“1227643821310”,我被告知结果应该等于2-12-2008,但我一直得到25-11的结果-2008

我的代码如下:

$mil = 1227643821310;
$seconds = $mil / 1000;
echo date("d-m-Y", $seconds);

关于为什么会这样的任何想法?

【问题讨论】:

    标签: php datetime time


    【解决方案1】:
    $mil = 1227643821310;
    $seconds = ceil($mil / 1000);
    echo date("d-m-Y", $seconds);
    

    【讨论】:

      【解决方案2】:

      对于转换本身,我使用这一行:$date = date('d-m-Y H:i:s', $millis / 1000);

      虽然答案很简单,但我也想贴一个示例 sn-p 以供使用,就这样吧。

      从中提取daymonthyear

      // explode values first in spaces and then in dashes
      $date = explode('-', explode(' ', $date)[0]); 
      $day = $date[0];
      $month = $date[1];
      $year = $date[2];
      

      随意使用它们:echo $day . '-' . $month . '-' . $year;

      输出:dd-mm-yyyy

      【讨论】:

        【解决方案3】:

        我刚刚添加了 H:i:s,如下例所示:

        $mil = 1227643821310;
        $seconds = $mil / 1000;
        echo date("d/m/Y H:i:s", $seconds);
        

        【讨论】:

          【解决方案4】:

          Jeff,在处理时间戳时要了解的重要一点:它们表示从 0:00:00 01.01.1970 格林威治标准时间开始的时间,而不是在您的时区(除非您自己在当然是格林威治标准时间)。

          1227643821 确实代表 GMT 时间 25.11.2008 20:10:21。

          在世界大部分地区,这是 2008 年 11 月 25 日,但在莫斯科东部的时区(由于夏令时,莫斯科时区本身在夏季)已经是 11 月 26 日。由于最“极端”的东部时区是 GMT+14,因此世界上没有任何地方可以用 1227643821 的时间戳来表示晚于 26 日的日期。

          原始值的作者在处理时区时可能会出现某种错误。或者只是完全错误。例如,在计算值时,在某个步骤添加秒而不是毫秒。

          【讨论】:

          • Ilya,确实 Unix 时间戳(POSTIX 时间)是自 GMT 纪元以来经过的时间量,但是,当您使用 PHP 的 date() 函数时,它会将该日期转换为您的服务器的本地时间等值。为了获得 GMT 时间的日期,您必须使用 PHP 的 gmdate() 函数。
          【解决方案5】:

          您已经做对了,1227643821 根本不是 02-12-2008,它确实是 25-11-2008。

          【讨论】:

          • 你确实是对的——事实证明我得到的来源是错误的。
          • echo date("d-m-Y", ($mil / 1000) ); - 有什么理由不只是保存一些代码并一次性完成所有工作吗?一直在寻找节省内存和减少不必要的内存/变量/行的方法。
          • 这是我经常使用的另一个在线 Unix 纪元时间戳转换器:epochconverter.com
          【解决方案6】:

          我唯一能想到的就是在将小数部分转换为日期之前尝试四舍五入。如果这不改变结果,那么结果是正确的。

          【讨论】:

            猜你喜欢
            • 2019-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-12-05
            • 2011-06-08
            相关资源
            最近更新 更多