我需要在PHP中使用datetime生成唯一的事务ID。它的数字格式应该在17-20左右。 (赞: 2017041914495412346 )
有人可以帮忙吗?
提前谢谢..
答案 0 :(得分:2)
这样的事情会对你有用:
<?php
function getGUIDnoHash(){
mt_srand((double)microtime()*10000);
$charid = md5(uniqid(rand(), true));
$c = unpack("C*",$charid);
$c = implode("",$c);
return substr($c,0,20);
}
echo getGUIDnoHash();
?>
由于您说过字符,因此仅包含数字。并将是20个字符。当然因为它只是数字并且限制为20个字符,所以这并不是唯一的,所以你需要在代码中添加一个检查。
答案 1 :(得分:0)
您只需对uniqid
使用uniqid()函数即可答案 2 :(得分:0)
你可以试试这个:
substr(hash('sha256', mt_rand() . microtime()), 0, 20);
答案 3 :(得分:0)
获取这样的唯一交易ID:
DateTime.Now.ToString("ddMMyyyyHHmmssfff") ;
答案 4 :(得分:0)
您可以使用多种方法或日期时间逻辑。下面是我使用的17位数的单行解决方案
$unique = str_replace(".","",microtime(true)).rand(000,999);