带时间的唯一ID()

时间:2011-10-23 17:35:27

标签: php time uniqueidentifier

如果我使用:

$t = time();
echo $t;

这将输出类似:1319390934

的内容

我有两个问题:

  1. 此值可用作唯一ID吗?
  2. 如何从中生成日期?
  3. 我无法使用uniqid(),因为我需要一个可用于订购的值(最近)。

3 个答案:

答案 0 :(得分:11)

如上所述使用time()将为您提供一种创建唯一ID的可排序方式。连接字符串还会进一步随机化您想要的结果,并仍然可以对其进行排序:

$uniqueId= time().'-'.mt_rand();

答案 1 :(得分:4)

  1. 显然,这不能用作“唯一”ID,因为它在同一秒期间并不是唯一的。
  2. 查看date
  3. 如果您想要广告为唯一ID 的内容可以进行排序,您可以使用包含uniqid的内容:

    $u = time().'-'.uniqid(true);
    

    我可能在这里过度简化,理所当然地认为所有值time将产生的数字将具有相同的位数(因此字符串排序将产生与{{3}相同的结果}})。如果您不想做出这个假设,那么您可以考虑

    $u = sprintf("%010s-%s", time(), uniqid(true));
    

答案 2 :(得分:1)

如果您在拥有唯一ID的用户帐户的环境中使用此代码,则可以将time()附加到其帐户ID以生成唯一ID。

您可以使用以下方法将time()恢复为日期字符串:

$time = time();
echo 'The datestamp for (' . $time . ') is ' . date("Y-m-d", $time);

当然可以使用任何PHP的date()格式更改日期格式。