Я предполагаю, что ваше поле n_id
составлено так: [ГГГГММ] [XXX] => [ДАТА] [ID]
первый вопрос: что произойдет, если ваш идентификатор больше 999?
Я предполагаю, что вы хотите обработать идентификатор больше 999.
Итак, теперь проблема, которую нам нужно решить, это как добавить 1 к части идентификатора и поддерживать ее дополненной 0слева.
Вы получаете свой последний идентификатор из базы данных, это приятно, вероятно, это строка.
Первое, что мы хотим сделать, это получить часть идентификатора отдельно от части даты.
$n_id = $result->n_id;
$id = substr($n_id, 6, strlen($n_id)) // we know the first 6 characters are part of the date and the rest is part of id
тогда мы хотим добавить один к $id
$id += 1; // that statement will cast our string to int
#Now we want to cast it to string and pad with 0 if needed
if (strlen($id) < 3) {
$id = str_pad($id, 3, '0', STR_PAD_LEFT);
}
Теперь нам нужно просто соединить кусок
$date = new Datetime();
$newN_id = $date->format('Ym').(string)$id