从当前日期时间生成唯一的交易 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);
我需要使用 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);