2009-04-17 14 views
2

J'utilise la bibliothèque de graphes de flot pour jQuery, et il utilise l'heure javascript pour n'importe quelle série temporelle (pour rappel, c'est millisecondes depuis janvier 1970. Le temps Unix est secondes).Horodatage Unix et temps JavaScript; trop grand!

Mon code actuel ressemble à ceci:

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

Cela me donne un tableau de l'horodatage Unix. Je veux pour préparer les données pour JavaScript dans la boucle, mais lorsque je tente

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

le nombre est trop grand et il recrache « [-2147483648] ». Ai-je besoin de changer le "type" de variable autorisé à être maintenu dans le tableau à bignum ou quelque chose?

Merci!

+0

Dupliquer du commentaire ci-dessous, de sorte que vous obtenez une notification de réponse: Comment obtenez-vous les variables au javascript? Javascript ne peut pas lire les variables PHP, donc vous devez le passer d'une manière ou d'une autre. Il ne devrait pas se soucier si c'est une chaîne ou un nombre à ce point. Si vous pouvez montrer comment vous utilisez réellement le tableau $ dates, je peux y jeter un coup d'œil. –

+0

(pas sur mon ordinateur de travail) mais j'imprime le tableau à peu près comme: var data = , mais appelez la variable w/dans la balise de script en utilisant la fonction de bibliothèque de flot. Le programme complet est disponible sur: http://www.phpfreaks.com/forums/index.php/topic,248668.0.html Merci! –

Répondre

2

Vous pouvez essayer d'utiliser le BCMath Arbitrary Precision functions si vous les avez disponibles:

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

Ou tout simplement, vous savez, ajoutez trois zéros à la fin. Dans les deux cas, la valeur sera stockée sous forme de chaîne, mais cela ne devrait pas avoir d'importance pour vous.

+0

J'ai essayé: $ strippedTexts = $ currentResult ['created_at']; \t \t $ bigstring = strtotime ($ strippedTexts). '000'; \t \t \t \t $ dates [] = settype ($ bigstring, "float"); Et il produit un tableau de tous les "1". Malheureusement, la bibliothèque javascript que j'utilise a besoin des résultats sous forme de nombre, pas de chaîne. D'autres pensées? –

+0

Comment obtenez-vous les variables au javascript? Javascript ne peut pas lire les variables PHP, donc vous devez le passer d'une manière ou d'une autre. Il ne devrait pas se soucier si c'est une chaîne ou un nombre à ce point. Si vous pouvez montrer comment vous utilisez réellement le tableau $ dates, je peux y jeter un coup d'œil. –

3

Essayez ceci:

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

Cela va le transformer en flotteur qui en php peut stocker un plus grand nombre qu'un int.

+0

Chaque élément d'un tableau a-t-il son propre type de variable? –

+0

PHP est faiblement typé. Je pense que vous pouvez mélanger tous les types dans un tableau. –

+0

Je suis enfin de retour à ma machine de test; cela entraîne toujours le barfing d'un grand nombre négatif, puis le tableau s'arrête. Gross, barf! –

0

Aucune solution n'est requise, car il n'y a pas de problème: avoir JavaScript pour faire la multiplication.