2009-01-16 5 views
0

Предположим, что парень зарегистрирован на моем сайте за 5 $ за 30 дней. Итак, как мне сделать код, который автоматически после 30 дней удаляет его учетную запись?Как вычитать даты?

Спасибо за ответы и извините за плохой английский почтения, Том

+0

Какой язык/платформа? –

ответ

2

Если вы можете, конвертируйте дату регистрации и текущее время в отметки времени UNIX. Затем вычтите время регистрации из текущего времени и проверьте, превышает ли результат количество секунд в течение 30 дней. (60 секунд * 60 минут * 24 часа * 30 дней = 2592000 секунд.)

+1

Остерегайтесь странного поведения с летним временем. – derobert

10

Используйте погрузо дату функция вашего предпочтительного языка программирования. Не пытайтесь реализовать это самостоятельно. Это сложнее, чем вы думаете.

0

Скорее всего, вы будете запускать работу cron каждый день или около того, а также проверить, был ли последний платеж аккаунта 30 дней назад, а затем удалить пользователя. Однако манипулирование датой трудно объяснить, если мы не знаем, какой язык вы используете. Поскольку вы указали DateTime, я собираюсь предположить, что вы имеете в виду объект .NET DateTime, а затем вы можете просто сделать DateTime.addMonths (-1); или DateTime.addDays (-30) соответственно.

+0

Хе-хе, я наткнулся на добавление отрицательных дней и для .NET. Очень удобно! –

+0

Ну нет метода для минус-дней, только добавьте. – Malfist

0

Если вам просто нужно посчитать 30 дней, вы можете считать их 30 * 24 * 60 * 60 = 2592000 секунд и просто вычесть временные метки unix ,

Что-то более сложное, чем это, это PITA для реализации себя, и yuo должен следовать рекомендациям рекурсивных.

3

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

Для примера .Net: когда вы получаете платеж в размере 5 долларов США, установите дату истечения срока действия учетной записи на DateTime.Now.AddDays (30) и отклоните логин на учетной записи, где expirationDate < DateTime.Now.

На Java вам нужно будет вылить дату в календарь, чтобы добавить дни, а затем вылить их обратно в дату, когда вы закончите.

Однако, какие средства доступны для обработки дат, определяется вашей средой.

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