4
    $date = "1346706576967";  // miliseconds
    $newDate = (int) $date;
    echo $newDate;

我得到“2147483647”作为 $newDate。

我只是想将变量从 String 1346706576967 转换为 int 1346706576967 - 这怎么可能?

4

4 回答 4

5

不幸的是,2147483647 是整数可以容纳的最大值。您可以在此处使用浮点数,因为浮点数可以准确地保存高达 10000000000000 的整数值

于 2012-09-07T17:14:38.630 回答
2

因为这是 PHP 中整数可以具有的最大大小。您将需要一个专门用于处理较大整数(如 BCMath 或 GMP)的 PHP 库,或者只是将其转换为浮点数。

于 2012-09-07T17:15:05.223 回答
1

可能的转换,

$input => 1346706576967
(integer)$input => 2147483647
intval($input) => 2147483647
$input*1 => 1346706576967
settype($input, "integer") => 1346706576967

http://phpconvert.com/online/

于 2013-03-27T12:25:11.150 回答
0

您可以使用隐式转换来正确转换它:

$date = "1346706576967";  // miliseconds
$newDate = 0+$date; // float(1346706576967)
$newDate = (int) $date; // int(2147483647)
于 2012-09-07T17:32:09.483 回答