【发布时间】:2013-07-01 23:59:52
【问题描述】:
我有以下代码行
$timestamp = '-'.(int)(microtime(true)*1000);
$timestamp 被附加到订单 ID 的末尾以使其更加独特,但是,当我在本地 Wamp 服务器(在 Windows 操作系统上)上进行测试时,我得到了这样的值
-166776478
-166701036
作为测试,我在 unix 上的测试服务器上进行了订购,我得到了这样的值
1372722035
1372722471
对于每个中的最后一个,我所做的是打开 2 个 firefox 窗口并几乎同时执行订单(我的本地 wamp 服务器需要更长的时间,因为我没有任何缓存
现在,奇怪的是,我期望本地 Wamp 服务器上的值与测试服务器上的值大致相同
据我了解,microtime() 返回自 Unix 纪元以来的当前 Unix 时间戳,以微秒为单位,因此时区设置不应该有任何影响
我想知道如果 microtime 不在 unix 上运行,它会得到不同的值吗?如果不是,为什么我会得到 2 个非常不同的值
【问题讨论】:
-
php 的 uniqid() 有什么问题
-
@Dagon 不知道,系统是由其他人完成的,我的系统从他们发送的数据中耗尽,我猜性能因为
microtime只是在获得时间戳,而uniqid正在返回基于时间戳的唯一值,可能需要更多处理,我可以更改它,但我想避免更改早在我之前就存在的系统,除非我真的必须这样做,无论如何,我不认为值的差异引起任何问题,所以这只是好奇
标签: php windows unix timestamp microtime