【问题标题】:How to convert java timestamp to php timestamp?如何将java时间戳转换为php时间戳?
【发布时间】:2012-05-03 22:25:27
【问题描述】:

如何将像 1335997853142 这样的 Java 时间戳转换为 php 可以读取的格式? 1335997853142 应该是 02 May 2012 22:30:53

但无论我尝试什么,我都会出错或 PHP 显示 1970-01-01 01:00:002038-01-19 04:14:07

求救!!!我正在寻找超过 1.5 小时的解决方案!

【问题讨论】:

  • 使用java.util.Calendar。这就是这个好问题的全部内容。
  • Java 时间戳是 linux 时间的毫秒数,php 是 linux 时间的秒数。 java时间除以1000得到php时间。
  • @Torious:不想使用 java - 我正在使用 php 将 1220 个值从 xml 文件转换为 mysql

标签: java php timestamp


【解决方案1】:

PHP 时间戳是秒,而不是毫秒。

echo gmdate("d M Y H:i:s",1335997853);

输出02 May 2012 22:30:53

【讨论】:

  • 该死!!好的,现在可以使用 - 与您的所有解决方案一起使用!谢谢!!问题是:字符串有空格(不知道为什么!)。在 trim() 之后一切正常。对不起,谢谢大家!
【解决方案2】:

它不是 java 时间戳,它是自 epoch (1970-01-01 00:00:00 GMT) 以来的毫秒数

哪个php supports too 除了在几秒钟内,所以以下应该在 php 中工作:

date('choose your format', javaMilliseconds / 1000);

【讨论】:

  • 正如 Mark Reed 所说的 date_default_timezone_set("UTC");
【解决方案3】:

您拥有的时间戳以毫秒为单位,而应该以秒为单位

$java_time = 1335997853142;
$php_time = $java_time / 1000;
$today = date("d M Y G:i:s", $php_time);

输出

02 May 2012 22:30:53

【讨论】:

  • 这给出了数组中的所有值:25 Jan 1970 20:31:23
  • 我遗漏了一些分号,现已修复
  • 您确定从 xml 中正确检索条目吗?
【解决方案4】:

Java 为您提供以毫秒为单位的时间戳。 PHP 使用 Unix 秒,所以除以 1000:

  print(date("r", 1335997853142/1000)

【讨论】:

    【解决方案5】:

    日期/时间:UTC 时间 2014 年 4 月 / 08 日下午 12:17:42

    Java 时间戳:1396959462222

    PHP 时间戳:1396959462

    除以 1000 并不能给出完全正确的答案,因为它会给出一个 double 或 float 值,即 1396959462.222,这不是我们想要的。我们在这里需要一个整数,例如 1396959462。因此,将 Java 时间戳转换为 PHP 时间戳的正确方法是使用 intval():

    $php_timestamp = intval($java_timestamp/1000);
    

    在一个真实的例子中,在我的一个 Android 应用程序中,我将 Java 时间戳发送到 PHP 服务器,我按照上面提到的方式进行操作。此外,为了良好的安全实践,我添加了一个 preg_replace() 以确保如果有人在此字段中添加了 hack 代码,它将被删除:

    $php_timestamp = intval(preg_replace('/[^0-9]/', '', $java_timestamp)/1000);
    

    【讨论】:

      【解决方案6】:

      date 需要一个整数格式的时间戳。所以我认为你应该删除最后一个数字 3。不要使用除法,因为它会返回浮点数。

      【讨论】:

        【解决方案7】:

        在php中使用date()函数,参数在这里:http://php.net/manual/en/function.date.php

        【讨论】:

          【解决方案8】:

          这是一个微时间的时间戳

          使用

          $time = date("whatever you need", $javatime / 1000);
          

          【讨论】:

          • 我用过这个:date('Y-m-d H:i:s', $values['date'] / 1000); // 1970-01-25 21:31:23 this: date('Y-m-d H:i:s', (int) $values['date'] / 1000) // 1970-01-25 21:31:23 this: date('U = Y-m-d H:i:s', (int) $values['date']) // 2038-01-19 04:14:07 this: date('U = Y-m-d H:i: s', (int) $values['date']) // 警告:date() 期望参数 2 长 wtf 错误?!?
          猜你喜欢
          • 2017-03-30
          • 1970-01-01
          • 1970-01-01
          • 2011-01-29
          • 1970-01-01
          • 2022-07-20
          • 1970-01-01
          • 2015-09-08
          • 1970-01-01
          相关资源
          最近更新 更多