从当前日期时间生成唯一的事务ID

时间:2017-04-27 09:03:19

标签: php codeigniter datetime unique

我需要在PHP中使用datetime生成唯一的事务ID。它的数字格式应该在17-20左右。 (赞: 2017041914495412346
有人可以帮忙吗?
提前谢谢..

5 个答案:

答案 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);