2015-04-24 2 views
-4

Я хотел бы создать серийный номер следующим образом.Сброс серийных номеров по каждому номеру каждого месяца в php

Серийный номер должен вернуться к 01 с начала каждого месяца.

$stockno=dofetch(doquery("Select count(id) from vehicle",$dblink)); 
$stock_no= date("Ymd")."-".$stockno=$stockno["count(id)"]+1; 

выход

20150424-01

20150424-02

20150424-03

...

20150430-120

20150501-121

20150501-122

20150502-122

но нужно Результат ниже формата, при запуске нового месяца сериалов будут обнулены

20150424-01

20150424-02

20150424-03

...

20150430-120

20150501-01

20150501-02

20150502-03

новый месяц снова начать сброс до 1

20150601-01

т.д.

+1

использования столбца даты в таблице транспортного средства, после чего вы сможете получить рассчитывать на дату основе и если месяц закончится, вы получите счет нулевого который будет соответственно увеличиваться. – DevLakshman

+0

Просто используйте цикл и сохраните переменную, хранящую предыдущий месяц. если изменения месяца, проинтегрируйте счет. –

+4

-1 do-my-work-for-me – Sharky

ответ

0

Здесь вы идете,

вам просто нужно, чтобы получить последний добавленный серийный значение.

$dateString = "20150424-03"; // get Last entry's date from database. (date("Ymd"). Ex. 20150424-03 
$dtData = split('-',$dateString); // $dtData[0] = date part, $dtData[1] = Prefix part 
$month1 = date("m",strtotime($dtData[0])); //Get the month of retrived date 

//$date2 = date("Ymd"); // Get current date 
// OR 
$date2 = date("Ymd", strtotime("+1 day", strtotime($dtData[0]))); // OR Increment last-date by one day 
$month2 = date("m",strtotime($date2)); // Get updated date's month 

// now calculate month difference between dates. if months are same, prefix will be increased else prefix will be reset to 1 
$prefix = (($month2-$month1) == 0) ? str_pad(++$dtData[1], 2, '0', STR_PAD_LEFT) : str_pad(1, 2, '0', STR_PAD_LEFT); 
echo $date2. '-'. $prefix; 

Простые и не требует каких-либо изменений в базе данных

Смежные вопросы