如何组合日期和数字来形成一个ID?(php)

时间:2017-11-30 02:50:35

标签: php html

我想拥有并且id为前8位数字是日期(yyyymmdd),其余的将是每天重置的数字增量。

例如:

  id
----------
2017301101

2017301102

2017301103

2017011201

请注意,日期更改时会重置ID。我如何在PHP中实现这一点?

2 个答案:

答案 0 :(得分:0)

要创建此ID,请使用PHP date function,就像这样。

function generateId($existingIds) {
    $currentDate = date('Ymd');

    $id = 1;

    while (in_array($currentDate . sprintf('%02d', $id),$existingIds)) {
        $id++;
    }

    return $currentDate . sprintf('%02d', $id);
}

我使用sprintf格式化数字,使其始终至少为两位数(01,10,100)。之后,我使用in_array检查生成的id是否尚未在数组中。

然后你可以通过这样的方式提供现有id的数组来调用这个函数。

$idArray = [];
array_push($idArray,generateId($idArray));

在这里生成一个id并立即将其推送到数组。

答案 1 :(得分:-2)

正如大多数人所说,这不是创建ID的好方法。

作为替代方案,我建议你去加时间戳。

请参阅此PHP Datetime timestamp