2 回答
TA贡献1856条经验 获得超11个赞
该解决方案需要最后格式化的 ID 和一些逻辑。如果最后一个ID是当前月份,则只需加1。如果不是,则新月份从1开始。
function getId($lastId){
$curYm = (int)date('Ym');
$lastYm = (int)($lastId/10000);
if($lastYm == $curYm) return ++$lastId;
return $curYm * 10000 + 1;
}
例子:
$id = 2020080007;
$nextId = getId($id); //int(2020080008)
$id = 2020070127;
$nextId = getId($id); // int(2020080001)
TA贡献1797条经验 获得超4个赞
获取最后一个记录月份并检查 $currentMonth 和 Lastrecords 月份是否相同,如果相同则增加当前 $last4Digits 否则设置 $last4Digits = '0001'
$currentYear = date('Y');
$currentMonth = date('m');
// last record from db
$db_last4Digits = //data from db;
$db_last4Digits_month = substr($db_last4Digits, 4, 2);
$db_last4Digits_month = substr($db_last4Digits, 6);
if($db_last4Digits_month == $currentMonth){
$last4Digits = '0001'; // set to 0001 if current month is not equal to last month
}else{
$last4Digits = substr($db_last4Digits, -4, 4); //get last 4 numbers
$last4Digits += $last4Digits ;
}
$formatedNumber = $currentYear.$currentMonth.$last4Digits;
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报