我试图以毫秒为单位获取特定日期的纪元时间.但是,如果我以秒为单位得到时间并乘以1000,我会得到这种格式的值--1.3E + 12.我希望返回值的格式为1300000000000.这可能吗?
看起来你在32位平台上使用PHP.
现在,Unix纪元时间戳(你得到的time())是一个31位有符号整数.在32位平台上,PHP本身不支持大于32位的整数.当您尝试将其乘以1000时,结果为41位整数.因为PHP不能这样做,所以它将整数转换为浮点数.作为一个副作用,当你回应它时,你会看到简短的科学记数法.
因为PHP 也不能用毫秒表示正常的时间戳(甚至不能用DateTime对象),所以这里最好的办法是对整数进行另一次转换,转换为字符串.
echo time() . '000';
Run Code Online (Sandbox Code Playgroud)
这是一个丑陋的黑客,但你会产生一个看起来与你期望的基于毫秒的纪元时间戳完全相同的字符串.只要你不希望对它进行数学运算,你应该没问题.鉴于您可能正在为某些基于Java的Web服务或其他服务生成此服务,您可能可以使用它.(如果您控制Web服务的两端,请考虑切换到ISO 8601日期时间以获得出色的互操作性.)