yuckysocks Posted April 19, 2009 Share Posted April 19, 2009 Hi all. I'm trying to get data into a form that works with flot, the jQuery graphing library. I need to get UTC timestamps from Twitter into a javascript timestamp (=Unix timestamp * 1000). My code currently looks like this: foreach($decoded['results'] as $currentResult) { if($currentResult['from_user'] == $user) { $strippedTexts = $currentResult['created_at']; $bignumber = strtotime($strippedTexts); $biggerstring = bcmul($bignumber, 1000); $dates []= settype($biggerstring, "int"); } } This creates a dates[] array that contains the value "1", once. Clearly not what I want. I've tried multiplying by 1000 (resulted in a large number barf: -2147483648), multiplying by 1000.0 (to convert to a float, maybe it would take a bigger number). I've also tried concatenating "000" and using setype($var, "float") and that won't work either. Any idea how I can get the incoming array of UTC time stamps into "milliseconds since 1970" (which is what the flot library needs, as an integer, not a string)? If it helps, here's the entire code, soup to nuts: <?php $url = "http://search.twitter.com/search.json?q=%23runlogger"; $contents = file_get_contents($url); $decoded = (json_decode($contents, true)); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <script type="text/javascript" src="jquery.flot.js"></script> </head> <body> <form name="input" action="skeleton.php" method="get"> Twitter Username: <input type="text" name="user" /> <input type="submit" value="Go Get 'em, Tiger" /> </form> <?php if (isset($_GET['user'])) { $miles = array(); $dates = array(); $pairs = array(); $user = $_GET["user"]; foreach($decoded['results'] as $currentResult) { if($currentResult['from_user'] == $user) { $strippedTexts = explode(" ", $currentResult['text']); $miles []= $strippedTexts[0]; } } foreach($decoded['results'] as $currentResult) { if($currentResult['from_user'] == $user) { $strippedTexts = $currentResult['created_at']; $bignumber = strtotime($strippedTexts); $biggerstring = bcmul($bignumber, 1000); $dates []= settype($biggerstring, "int"); } } foreach($miles as $key=>$mile) { $pairs[$dates[$key]] = $mile; } ksort($pairs); foreach($pairs as $d=>$m) { $orderedpairs .= "[$d, $m], "; } echo " <div id='placeholder' style='width:600px;height:300px'></div> <script language='javascript' type='text/javascript'> $(function () { var data = [[$orderedpairs]]; var plotarea = $('#placeholder'); var options = { legend: { show: true } xaxis: { mode: time } } $.plot( plotarea , data , options ); }); </script> $orderedpairs "; } else { echo "Go ahead and search for a name! Try 'Tester2314' to see what an example could look like"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/154776-help-with-casting-and-big-numbers/ Share on other sites More sharing options...
JD* Posted April 19, 2009 Share Posted April 19, 2009 Did you look into strotime()? Quote Link to comment https://forums.phpfreaks.com/topic/154776-help-with-casting-and-big-numbers/#findComment-813922 Share on other sites More sharing options...
yuckysocks Posted April 19, 2009 Author Share Posted April 19, 2009 I did indeed; that's actually at the root of the foreach loop. Good suggestion though. Anyone else have any ideas? Quote Link to comment https://forums.phpfreaks.com/topic/154776-help-with-casting-and-big-numbers/#findComment-814038 Share on other sites More sharing options...
meomike2000 Posted April 19, 2009 Share Posted April 19, 2009 have you tried calling mktime() but as mktime(value to get time from); worked for me to get time from a stored value; Quote Link to comment https://forums.phpfreaks.com/topic/154776-help-with-casting-and-big-numbers/#findComment-814056 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.