使用当前年份的前缀生成序列号例如:2016-000001- PHP / MYSQL

时间:2016-09-02 22:05:19

标签: php mysql

我想生成从000001(总共六位数)开始的数字序列,其前缀为当前年份。然后将其存储到数据库中。 格式如下:year-000001。
例如: 2016-000001

当年份发生变化时,数字序列将自动重置为000001 例如: 2017-000001

2 个答案:

答案 0 :(得分:0)

使用date()str_pad(),您可以生成类似2016-000001的序列

$year= date('Y');
$year=$year.'-';
$n=0;
$n = str_pad($n + 1, 6, 0, STR_PAD_LEFT);
$number=$year.$n;
echo $number;

答案 1 :(得分:0)

如果您从数据库中检索了最后一个分配的号码,并且需要在PHP中生成下一个号码,则可以使用此功能:

function getNextNumber($id = '') {
    $year = date('Y');
    $seq = $year <> +$id ? 0 : +substr($id, -6);
    return sprintf("%0+4u-%0+6u", $year, $seq+1);
}

// Example calls (in 2016):
$id = getNextNumber('2016-023000'); // 2016-023001  
$id = getNextNumber('2015-193481'); // 2016-000001

第一次,你只是传递空字符串,或者什么都没有:

$id = getNextNumber(); // 2016-000001