Уникальный идентификатор со временем () - PullRequest
5 голосов
/ 23 октября 2011

Если я использую:

$t = time();
echo $t;

Это выведет что-то вроде: 1319390934

У меня два вопроса:

  1. Это значение можно использовать как уникальный идентификатор?
  2. как сгенерировать из него дату?

Я не могу использовать uniqid(), потому что мне нужно значение, которое можно использовать для заказа (недавно).

Ответы [ 3 ]

11 голосов
/ 23 октября 2011

Использование time(), как уже упоминалось, даст вам удобный способ создания уникальных идентификаторов.Конкатенация строк также будет дополнительно рандомизировать желаемый результат и сохранять его сортируемым:

$uniqueId= time().'-'.mt_rand();
4 голосов
/ 23 октября 2011
  1. Очевидно, что это нельзя использовать в качестве "уникального" идентификатора, потому что, ну, он не уникален в течение той же секунды.
  2. Просмотр date.

Если вы хотите отсортировать что-то, что объявляется как уникальный идентификатор и , вы можете использовать что-то вроде этого: uniqid:

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

Возможно, я здесь слишком упрощен, принимая как должное то, что все значения, которые time будет производить, будут иметь одинаковое количество цифр (так что сортировка строк будет давать те же результаты, что и натуральный сорт ).Если вы не хотите делать это предположение, тогда вы можете рассмотреть

$u = sprintf("%010s-%s", time(), uniqid(true));
1 голос
/ 23 октября 2011

Если вы используете этот код в среде, где у вас есть учетная запись пользователя с уникальным идентификатором, вы можете добавить time () к идентификатору их учетной записи, чтобы создать уникальный идентификатор.

Вы можете включить время () обратно в строку даты, используя:

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

Конечно, формат даты может быть изменен с использованием любого из PHP в формате date ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...