Unix时间戳和JavaScript时间;太大!

时间:2009-04-17 18:53:59

标签: php javascript time bignum

我正在使用jot的flot图形库,并且它使用javascript时间用于任何时间序列(提醒,自1970年1月以来的毫秒数.Unix时间)。

我目前的代码如下:

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或其他内容?

谢谢!

3 个答案:

答案 0 :(得分:3)

试试这个:

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

这将把它变成浮点数,在php中可以存储比int更大的数字。

答案 1 :(得分:2)

如果您有BCMath Arbitrary Precision functions,可以尝试使用{{3}}:

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

或者,只是,你知道,最后添加三个零。

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

在这两种情况下,您最终都会将值存储为字符串,但这对您的使用无关紧要。

答案 2 :(得分:0)

不需要解决方案,因为没有问题:让JavaScript进行乘法运算。