2009-04-17 5 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配列をどのように使用しているかを見ることができれば、それを見ることができます。 –

+0

(私の仕事のコンピュータではない)が、私は大体のように配列を印刷しています:ですが、実際にはflotライブラリ関数を使用してscriptタグの変数w /を呼び出します。完全なプログラムはhttp://www.phpfreaks.com/forums/index.php/topic,248668.0.htmlにあります。 ありがとう! –

答えて

2

あなたがそれらを利用できる持っている場合は、BCMath Arbitrary Precision functionsを使用して試すことができます:

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

それとも、あなたが知っている、最後の3つのゼロを追加します。

いずれの場合でも、値は文字列として保存されますが、それはあなたの使用のために重要ではありません。

+0

私は試しました: $ strippedTexts = $ currentResult ['created_at']; \t \t $ bigstring = strtotime($ strippedTexts)。 '000'; \t \t \t \t $ dates [] = settype($ bigstring、 "float"); そして、すべての "1"の配列を生成します。残念ながら、私が使用しているjavascriptライブラリでは、文字列ではなく数値として結果が必要です。他の考え? –

+0

どのように変数をjavascriptに取得しますか? JavascriptはPHP変数を読み取ることができないので、何とか渡す必要があります。その時点で文字列か数値かは気にしないでください。実際に$ dates配列をどのように使用しているかを見ることができれば、それを見ることができます。 –

3

これを試してみてください:PHPでint型よりも大きな数を格納できる、フロートにそれを向けるだろう

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

を。

+0

配列の各要素は独自の変数型を持っていますか? –

+0

PHPは緩く型付けされています。私はあなたが配列内の任意の型を混在させることができると思う。 –

+0

私はついに私のテストマシンに戻ります。これは依然として大きな負の数のバーフィングを生じ、その後アレイは停止する。グロス、バーフ! –

0

問題がないため解決策は必要ありません。JavaScriptで乗算を行う。

関連する問題