我碰到了一堵磚牆。比較PHP時間戳(int)和java時間戳(long)
我正在從服務器下載加密的關卡數據(用我創建的關卡創建者製作的)。
級別數據使用長時間使用Java存儲數據的最新更新版本。
現在爲了更新關卡,我下載了一個可用關卡的列表,以及他們上次在文件中使用php進行修改的時間。
很多人會說我必須把時間存儲在其他地方,比如json。這不是一個選項。
我得到如下結果:
Fri May 08 23:05:24 CEST 2015 | timeStampJava: 1431119124273
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:28 CEST 2015 | timeStampJava: 1431119128871
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:32 CEST 2015 | timeStampJava: 1431119132288
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:35 CEST 2015 | timeStampJava: 1431119135289
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:38 CEST 2015 | timeStampJava: 1431119138807
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
我想這兩個使用比較:
if(serverLevelInfo.last_updated > localLevelStorage.getLastUpdated())
問題是,如果我垂頭喪氣即
phpTimeStamp > (int)javaTimeStamp
它產生完全結果不準確。
現在做什麼?
編輯1
嘗試建議:
//TODO Problem PHP int timestamp to java long timestamp.
PolyUtils.log((long)(serverLevelInfo.last_updated * 1000));
PolyUtils.log(localLevelStorage.getLastUpdated());
PolyUtils.log("---");
結果(錯誤)
OLLY:LOG: 894879432
OLLY:LOG: 1431119124273
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119128871
OLLY:LOG: ---
OLLY:LOG: 896347432
OLLY:LOG: 1431119132288
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119135289
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119138807
OLLY:LOG: ---
您的JS時間戳以毫秒爲單位,PHP時間戳以秒爲單位。而你的毫秒值比PHP中32位有符號整數所表示的最大時間要大得多,因此你的1970年的日期。所以基本上你需要'$ php_timestamp = $ js_timestamp/1000;' –
這是JAVA不是Javascript :-) –
無論哪種方式,這是毫秒。 –