将timestamp字符串转换为timestamp整数php

时间:2016-07-23 06:28:01

标签: php

这是我的PHP代码

var_dump($args['startdate']); 
var_dump((int)$args['startdate']);die(); 

这是输出

string(13) "1468821556126" int(2147483647)

预期输出

string(13) "1468821556126" int(1468821556126)

为什么会发生这种情况以及如何解决此问题?

3 个答案:

答案 0 :(得分:2)

您无法获得可靠的结果,因为您的数字太大而无法表示为整数。

echo PHP_INT_MAX; //2147483647 on my system

对于与您一样大的数字,如果您需要数字格式,请将其转换为浮点数而不是整数

echo floatval('1468821556126'); //1.46882155613E+12

从那里,如果你想要一个约会,我认为这是Javascript时间,以毫秒为单位。要转换为Unix时间戳,您需要将其除以1000。

答案 1 :(得分:1)

你可能正在使用32位系统。您看到的数字是32位计算机上int的最大大小。 使用浮动或更换为64位机器。

参考:PHP Integer

答案 2 :(得分:1)

这种情况正在发生,因为你的$args['startdate']是毫秒,你需要将它除以1000

相关问题