PHP获取时间戳和微秒数以及生成唯一ID

microtime函数

描述:返回当前Unix时间戳和微秒数

语法:mixed microtime( [ bool $get_as_float ] )

//直接输出
echo microtime();
//得到的是 如:0.26672100 1585622985 前面是当前微秒数,后面是正常时间戳,中间以空格分隔开

//如果带有参数(布尔型参数)
echo microtime(true);
//输出结果:1585623020.7408 刚才的微秒数就会以浮点数的形式表现在原有的时间戳之后

浮点数太长可进行格式化操作

round($float,3)表示保留到小数点后三位

uniqid函数

描述:生成唯一ID

语法:string uniqid( [ string $prefix = " " [, bool $more_entropy = false ]] )  都是可选参数

第一个参数是前缀

扫描二维码关注公众号,回复: 94671 查看本文章
echo uniqid("haha");
//结果就是 haha......(后面是随机生成的)

但是我们这个前缀是不变的话没有意义,所以我们可以

uniqid( microtime() );

uniqid( microtime() . mt_rand() );

这个时候我们会发现它会有时间戳和随机数+随机ID,但是长度是不固定的

这时候我们可以使用uuid(产生唯一ID)

uuid 8-4-4-4-12的形式 正好是32位 (MD5是32位的)

echo md5(uniqid(microtime() . mt_rand())),'<br>';

这就产生一个UUID的形态,这样可以保证文件名即使在分布式环境下是唯一的 有些网站也会用网卡的mac地址,这个也是唯一的;

猜你喜欢

转载自www.cnblogs.com/leon-chung/p/8975473.html