带时间()的唯一ID


Unique ID with time()

如果我使用:

$t = time();
echo $t;

输出如下:1319390934

我有两个问题:
  1. 该值可以作为唯一id使用?
  2. 如何从它生成一个日期?

我不能使用uniqid(),因为我需要一个可以用来排序(最近)的值

使用上述time()将为您提供一种可排序的方式来创建唯一的id。连接字符串还将进一步随机化您想要的结果,并保持其可排序性:

$uniqueId= time().'-'.mt_rand();
  1. 显然,这不能用作"唯一"id,因为它在同一秒的持续时间内不是唯一的。
  2. 查看date

如果您希望广告中作为唯一id的内容都可以排序,您可以使用这样的内容,包括uniqid:

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

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

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

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

你可以使用:

将time()转换回日期字符串:
$time = time();
echo 'The datestamp for (' . $time . ') is ' . date("Y-m-d", $time);

当然,日期格式可以使用PHP的date()格式修改。

我可能会这样做:

$id = microtime();