Я пытаюсь создать систему подписки, в которой у каждого пользователя есть определенное количество дней в учетной записи, и каждый день количество дней уменьшается на единицу, пока не достигнет 0 дней. Как можно уменьшить количество дней для всех учетных записей, имеющих более 0 дней, каждый день, а также вывести дату, когда количество дней достигнет 0, в формате ДД-ММ-ГГГГ.
Благодарю.
РЕДАКТИРОВАТЬ:
Я нашел способ конвертировать дни в форму даты в C #, но как мне преобразовать формат даты в количество дней?
Преобразование дней в формат даты:
DateTime.Now.AddDays(subDayz).ToString("d-MMM-yyyy", new CultureInfo("en-GB"));
Может быть, есть способ сделать это на PHP или на C #, но помешать пользователю изменить дату, чтобы получить больше дней?
Вместо обратного отсчета при создании новой учетной записи задайте в столбце базы данных дату истечения срока действия учетной записи (то есть по окончании обратного отсчета) в формате DD-MM-YYYY. Например, если учетная запись создана сегодня («31-03-2018») и срок ее действия истекает через 15 дней, установите для этого поля значение «15-04-2018».
Теперь нет необходимости обновлять этот (и все другие активные аккаунты) каждый день! Если в будущем текущая дата будет больше, чем эта дата истечения срока действия, то срок действия учетной записи истек (обратный отсчет завершен).
Кстати, чтобы упростить сравнение дат, сохраните их в формате ГГГГ-ММ-ДД и проведите простое сравнение строк. Переформатируйте, если необходимо и как требуется для целей отображения.
Других решений пока нет …