$str_orig=date('ymdHis');
var_dump($str_orig); //string '220504105419' (length=12),这个没问题
var_dump((int)$str_orig); //int 2147483647 这个为什么不是220504105419
var_dump(intval($str_orig)); //int 2147483647 这个为什么不是220504105419
var_dump((float)$str_orig); //float 220504105419 为什么转换为float才是220504105419
date('ymdHis')得到的字符串 '220504105419',转换整数之后为什么不是220504105419??
只有转换为float才能得到本身的数值。
这个奇怪的数字2147483647 是怎么得来的?
明显也不是对应的时间戳
因为 2147483647 是 int 类型的最大值,说明你的操作系统是 32 位的。
原来的整数超出了 int 的最大值,所以赋值成了这个最大值。
https://www.php.net/manual/zh...