7

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

但是无论我尝试什么我都会得到错误或 PHP 说1970-01-01 01:00:002038-01-19 04:14:07

请帮忙!!!我正在寻找超过 1.5 小时的解决方案!

4

8 回答 8

8

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

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

那输出02 May 2012 22:30:53

于 2012-05-03T22:33:26.707 回答
6

它不是 java 时间戳,它是自纪元以来的毫秒数(格林威治标准时间 1970-01-01 00:00:00)

哪个php 也支持,除了几秒钟,所以以下应该在 php 中工作:

date('choose your format', javaMilliseconds / 1000);
于 2012-05-03T22:28:31.350 回答
1

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

Java时间戳:1396959462222

PHP时间戳:1396959462

除以 1000 并不能给出完全正确的答案,因为它会给出一个双精度或浮点值,即 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);
于 2014-04-08T12:53:40.937 回答
1

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

于 2014-07-24T09:55:14.453 回答
1

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

  print(date("r", 1335997853142/1000)
于 2012-05-03T22:30:48.313 回答
1

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

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

输出

02 May 2012 22:30:53
于 2012-05-03T22:32:40.263 回答
0

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

于 2012-05-03T22:29:01.793 回答
0

这是微时间的时间戳

利用

$time = date("whatever you need", $javatime / 1000);
于 2012-05-03T22:29:14.883 回答