从当前日期时间生成唯一的交易 ID

Generate unique transaction id from current datetime

我需要使用 PHP 中的日期时间生成唯一的交易 ID。它应该是大约 17-20 个字符的数字格式。 (赞: 2017041914495412346)
谁能帮帮忙?
提前致谢..

像这样的东西对你有用:

    <?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 个字符以内,所以这不是永远唯一的,所以你需要在你的代码中添加一个检查。

您可以简单地使用 uniqid() 函数 uniqid

你可以试试这个:

substr(hash('sha256', mt_rand() . microtime()), 0, 20);

像这样获取唯一的交易ID:

DateTime.Now.ToString("ddMMyyyyHHmmssfff") ;

您可以使用多种方法或日期时间逻辑来完成。下面是我正在使用的 17 位数字的单行解决方案

$unique = str_replace(".","",microtime(true)).rand(000,999);