2012-05-03 12 views
6

このようなJavaタイムスタンプをどのようにして1335997853142をPHPが読むことができる形式に変換できますか? 133599785314202 May 2012 22:30:53である必要があります。java timestampをPHPのタイムスタンプに変換するには?

しかし、これまでに何私はエラーを取得したり、PHPが1970-01-01 01:00:002038-01-19 04:14:07

PLSのヘルプを言うてみてください!私はsoloutionのために1.5時間以上を探しています!

+1

'java.util.Calendar'を使用してください。この素晴らしい質問のためにあなたが得ることはすべてです。 – Torious

+1

JavaのタイムスタンプはLinuxからのミリ秒で、PHPはLinuxからの秒です。 PHP時間を得るためにJava時間を1000で割ります。 – Jordonias

+0

@トーラス:javaを使用したくない - 私はphpでxmlファイルから1220の値をmysqlに変換しています – user1373728

答えて

6

それは秒を除い

php supports too以下は、PHPで動作するはずですので、それはepoch(1970-01-01 00:00:00 GMT)からのミリ秒で、Javaのタイムスタンプではありません。

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

Mark Reedもdate_default_timezone_set( "UTC")と言っています。 – pstanton

0

それは微小時間のタイムスタンプです

使用

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

私はこれを使用しました: 日付( 'Y-m-d H:i:s'、$ values ['date']/1000); // 1970-01-25 21:31:23 日付( 'Ymd H:i:s'、(int)$値['date']/1000)// 1970-01-25 21:31 :23 this: date( 'U = Ymd H:i:s'、(int)$値['日付'])// 2038-01-19 04:14:07 this: date( 'U = Ymd H:i:s '、(int)$ values [' date '])//警告:date()はパラメータ2が長くなることを期待します wtfが間違っていますか? – user1373728

1

Javaはミリ秒単位でタイムスタンプを返します。 PHPは、1000で除算して、Unixの秒を使用しています。

print(date("r", 1335997853142/1000) 
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 
+0

これは配列のすべての値を示しています:1970年1月25日20:31:23 – user1373728

+0

セミコロンがありませんでした。確定しました – Jordonias

+0

xmlからエントリを正しく取得していますか? – Jordonias

7

PHPのタイムスタンプは秒です出力であるべきときに持っているタイムスタンプはミリ秒単位であり、ミリ秒単位ではありません。

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

出力は02 May 2012 22:30:53です。

+0

ねえ! OK、今すぐ使えます - すべてのソリューションで!どうも!! 問題は:文字列にスペースが含まれています(理由はわかりません!)。 trim()の後にすべてがうまくいった。 申し訳ありませんが、みなさんありがとうございます! – user1373728

1

日付/時間:4月/ 08/2014年12時17分42秒午後UTC

Javaのタイムスタンプ:1396959462222

PHPのタイムスタンプ:1000による1396959462

ディングは、正確に正しい答えを与えるものではありませんそれは二重または浮動小数点の値、すなわち1396959462.222を与えるからです。これは私たちが望むものではありません。私たちは)だから、PHPのタイムスタンプにJavaのタイムスタンプを変換する正しい方法は、(INTVAL使用することによる1396959462.のように、ここで整数を必要とする:

$php_timestamp = intval($java_timestamp/1000); 

実際の例では、私はJavaのタイムスタンプを送る私のAndroidアプリの一つにPHPサーバー、私は上記のようにそれを行う。また、優れたセキュリティの実践のために、私は誰かがこのフィールドにハックのコードを追加した場合、それが削除されていることを確認するために)(にpreg_replaceを追加します。

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

日付整数形式でタイムスタンプを必要とします。だから私は最後の3つの数字を削除する必要があります。浮動小数点数を返す除算を使用しないでください。

関連する問題