Reputation: 949
If I use:
$t = time();
echo $t;
This will output something like: 1319390934
I have two questions:
I can't use uniqid()
, because I need a value that can be used to order (recent).
Upvotes: 6
Views: 24703
Reputation: 1127
Using time()
as mentioned will give you a sortable way to create unique IDs. Concatenating strings will also further randomize your desired result and still keep it sortable:
$uniqueId= time().'-'.mt_rand();
Upvotes: 15
Reputation: 13354
If you are using this code in an environment where you have a user account with a unique ID, you can append time() to their account ID to generate a unique ID.
You can turn time() back into a date string using:
$time = time();
echo 'The datestamp for (' . $time . ') is ' . date("Y-m-d", $time);
Of course the date format can be altered using any of PHP's date() format.
Upvotes: 1
Reputation: 437554
date
.If you want something that is advertised as a unique id and both can be sorted, you can use something like this that involves uniqid
:
$u = time().'-'.uniqid(true);
I 'm perhaps over-simplifying here, taking for granted that all values time
is going to produce will have the same number of digits (so that a string sort would produce the same results as a natural sort). If you don't want to make this assumption, then you could consider
$u = sprintf("%010s-%s", time(), uniqid(true));
Upvotes: 4