Как обрабатывать разное количество дней в ежемесячных подписках?

Я работаю над сайтом подписки PHP, и мне интересно, как разное количество дней в определенных месяцах влияет на подписки?

Например, пользователь оформляет ежемесячную подписку 31 января.

В феврале есть 28 дней, поэтому я предполагаю, что подписка будет обработана 28 числа.

Мой вопрос в том, что произойдет в следующем месяце. Подписка происходит 28-го числа или возвращается к 31-му, как при первом создании?

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


person Ben    schedule 13.09.2010    source источник


Ответы (2)


Я думаю, что лучше всего, чтобы подписки обрабатывались в конце месяца. В нашей компании мы начинаем обрабатывать подписки в конце месяца, у нас есть пакетный процесс, запланированный на конец месяца, и он обрабатывает все подписки.

То, как они обрабатываются / выставляются счета, совершенно разные. В соответствии с нашей политикой новые подписки распределяются пропорционально, т. е. пользователю выставляется счет в соответствии с количеством дней в месяце, если пользователь подписался после 5-го числа месяца. То же самое происходит и с отменой, но она распределяется пропорционально, если отмена производится до 15 числа месяца.

person Faisal Feroz    schedule 13.09.2010

Допустим, месячная подписка равна X, человек подписывается в Y-й день, и в этом конкретном месяце есть Z дней.

Я бы просто взимал с парня X * (Z-Y / Z) за этот месяц и переносил дату выставления счета на первый / последний день каждого месяца после этого.

person Rahul    schedule 13.09.2010