PHP与JavaScript中科学计数法时间戳转Unix时间戳问题
解决科学计数法时间戳转Unix时间戳及PHP解码问题
你的代码无法正常运行的核心原因:date()函数要求第二个参数是整数类型的秒级Unix时间戳,但你传入的是科学计数法格式的字符串,PHP无法自动正确解析这个字符串为有效时间戳。
解决步骤
- 解析科学计数法字符串:先把
1.6749018E+12转换为浮点型数值,再根据时间戳精度(秒/毫秒)处理成整数秒级时间戳。你的1.6749018E+12实际对应1674901800000,属于毫秒级时间戳,需要除以1000得到秒级时间戳。 - 传递有效时间戳给date函数:确保传入的是整数类型的秒级时间戳。
修正后的PHP代码
// 设置时区(避免时间显示偏差,可根据需求调整) date_default_timezone_set('Asia/Shanghai'); $t = '1.6749018E+12'; // 将科学计数法字符串转为浮点型,再除以1000取整得到秒级Unix时间戳 $unixTimestamp = (int)(floatval($t) / 1000); // 输出格式化后的时间,可自定义格式 print date('Y-m-d H:i:s', $unixTimestamp);
额外说明
- 如果你的科学计数法时间戳本身是秒级(比如
1.6749018E+09,对应10位数字),直接转成整数即可:$unixTimestamp = (int)floatval($t); - 用
floatval()可以确保科学计数法字符串被正确解析为数字,再转成整数避免date()函数报错。
内容的提问来源于stack exchange,提问作者pico.vn
相关产品推荐
相关产品推荐

