2009-04-17 145 views
2

我正在使用jQuery的flot圖形庫,並且它爲任何時間序列使用javascript時間(提醒,這是1970年1月以來的毫秒。Unix時間是)。Unix時間戳和JavaScript時間;太大!

我當前的代碼如下所示:

foreach($decoded['results'] as $currentResult) { 
     if($currentResult['from_user'] == $user) { 
      $strippedTexts = $currentResult['created_at']; 
      $dates []= strtotime($strippedTexts); 
     } 
    } 

這給我的Unix時間戳的數組。我想預習的循環對JavaScript的數據,但是當我試圖

$dates []= 1000*strtotime($strippedTexts); 

數量過於龐大,它吐出「[-2147483648]」。我是否需要將允許在數組中保存的變量的「類型」更改爲bignum或其他?

謝謝!

+0

重複下面的評論,所以你得到一個響應通知:你如何獲得的JavaScript變量? Javascript不能讀取PHP變量,所以你必須以某種方式傳遞它。它不應該在乎在這一點上它是一個字符串還是一個數字。如果你可以展示你如何使用$ dates數組,我可以看看這個。 – 2009-04-20 04:54:44

+0

(不在我的工作電腦上),但我打印數組大致如下:,但實際使用flot庫函數調用腳本標記中的變量w /。完整的計劃在:http://www.phpfreaks.com/forums/index.php/topic,248668.0.html 謝謝! – 2009-04-23 18:16:03

回答

2

您可以嘗試使用BCMath Arbitrary Precision functions,如果你讓他們提供:

$dates[] = bcmul("1000", strtotime($strippedTexts)); 

或者只是,你知道,在末尾添加三個零。

$dates[] = strtotime($strippedTexts).'000'; 

在這兩種情況下,您最終都會將值存儲爲字符串,但這對您的使用應該無關緊要。

+0

我試過了: $ strippedTexts = $ currentResult ['created_at']; \t \t $ bigstring = strtotime($ strippedTexts)。'000'; \t \t \t \t $ dates [] = settype($ bigstring,「float」); 它會產生所有「1」的數組。不幸的是,我正在使用的JavaScript庫需要結果作爲數字,而不是字符串。任何其他想法? – 2009-04-19 17:35:12

3

試試這個:

$dates []= 1000.0*strtotime($strippedTexts); 

這將變成浮動,這在PHP可以存儲比int更大的數字。

0

沒有解決方案是必需的,因爲沒有問題:JavaScript執行乘法。