$date = "1346706576967"; // miliseconds
$newDate = (int) $date;
echo $newDate;
$newDateとして「2147483647」を取得しています。
変数をString1346706576967からint1346706576967に変換したいだけです-これはどのように可能ですか?
2147483647は、残念ながら整数が保持できる最大値です。floatは10000000000000までの整数値を正確に保持できるため、代わりにfloatを使用できます。
これはPHPの整数が持つことができる最大サイズであるためです。BCMathやGMPなどのより大きな整数を処理するために作成された、または単にfloatに変換するために作成されたPHPライブラリが必要になります。
可能な変換、
$input => 1346706576967
(integer)$input => 2147483647
intval($input) => 2147483647
$input*1 => 1346706576967
settype($input, "integer") => 1346706576967
暗黙の変換を使用して、正しく変換できます。
$date = "1346706576967"; // miliseconds
$newDate = 0+$date; // float(1346706576967)
$newDate = (int) $date; // int(2147483647)