You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP与JavaScript中科学计数法时间戳转Unix时间戳问题

解决科学计数法时间戳转Unix时间戳及PHP解码问题

你的代码无法正常运行的核心原因:date()函数要求第二个参数是整数类型的秒级Unix时间戳,但你传入的是科学计数法格式的字符串,PHP无法自动正确解析这个字符串为有效时间戳。

解决步骤

  1. 解析科学计数法字符串:先把1.6749018E+12转换为浮点型数值,再根据时间戳精度(秒/毫秒)处理成整数秒级时间戳。你的1.6749018E+12实际对应1674901800000,属于毫秒级时间戳,需要除以1000得到秒级时间戳。
  2. 传递有效时间戳给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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:56:15