2012-02-23 114 views
1

我準備數據一個Javascript時間戳傳遞給我的javascript在PHP。使用json_encode對數據進行編碼並傳遞它。PHP傳遞使用json_encode

一個我想傳遞的元素是一個JavaScript時間戳。 PHP時間戳以秒爲單位,JavaScript時間戳以毫秒爲單位,所以我需要將php時間戳乘以1000.

問題是生成的int值過大,並且在1.3239E + 12發送而不是1323907200000發送大約1一路上精準的一天。

其中一種方法是在json中傳遞Date.UTC()函數,但沒有簡單的方法使用json_encode。

任何解決方案?

回答

3
$jstimestamp = (string) time() + "000"; 

試試看。我以同樣的方式解決了類似的問題。然而,最簡單的方法是在Javascript中乘以或將js-timestamp除以1000.

+0

我正在使用的js庫將返回一個錯誤,如果一個字符串傳遞,而不是一個int .. – applechief 2012-02-23 10:15:04

+0

正如我在這裏評論另一個答案。看看圖書館的來源。找到它使用時間戳功能,做一個解決方法是這樣'變種時間戳= parseInt函數(json.timestamp)* 1000;' – OptimusCrime 2012-02-23 10:16:01

+0

作爲參考,我傳遞JSON到highcharts圖表庫。我需要修改庫以使其工作..不理想。 – applechief 2012-02-23 10:16:36

2

我已經通過將其編碼爲字符串而不是整數來解決此問題。

+0

不幸的是,我使用js庫的值,如果它是一個字符串,而不是int – applechief 2012-02-23 10:12:49

+2

將parseInt放在變量之前它被使用了? – OptimusCrime 2012-02-23 10:14:22

1

可以接收(在Javascript)後一直繁衍,而不是之前發送。

+0

但如何做到這一點? json_encode會通過它作爲一個字符串,而不是一個表達式.. – applechief 2012-02-23 10:13:33

+0

var timestamp = parseInt(json.timestamp)* 1000;' – OptimusCrime 2012-02-23 10:14:58