如何将java时间戳转换为php时间戳?

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

但是,我尝试了什么,我得到错误或PHP说1970-01-01 01:00:00 2038-01-19 04:14:072038-01-19 04:14:07

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

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

 echo gmdate("d MYH:i:s",1335997853); 

那输出02 May 2012 22:30:53

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

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

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

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

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

产量

 02 May 2012 22:30:53 

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

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

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

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); 

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

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

这是microtime的时间戳

使用

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