我想生成从000001(总共六位数)开始的数字序列,其前缀为当前年份。然后将其存储到数据库中。
格式如下:year-000001。
例如: 2016-000001
当年份发生变化时,数字序列将自动重置为000001 例如: 2017-000001
答案 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