Что у меня есть минус месяцы в базе данных (MySQL), это код PHP? - PullRequest
1 голос
/ 06 августа 2010

Описание:

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

Проблема:

Из 500 пользователей мало пользователей, которые, например, совершают покупки сегодня, но срок действия истекает назад, на 1 или 2 дня или даже на месяцы. Например: он приобрел 3 августа 2010 года, срок годности - 25 мая 2010 года.

Мой Php код:

Код, который я использую для добавления за 1 месяц до вставки в базу данных mysql:

// I already set the default timezone
$expiryDate = date("Y-m-d H:i:s",strtotime("+1 month"));

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

! Важный вопрос!

Каковы возможные причины, которые могут вызвать истечение срока годности?

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

Есть проблемы с использованием +1 month с strtotime, есть некоторые решения на странице документа функции.Однако на вашем месте я бы использовал проверенную библиотеку, такую ​​как Zend_Date.Вы могли бы использовать sql, как было предложено, но я собираюсь догадаться, что это будет отличаться от того, как вы организовали свой специфичный для БД код.

0 голосов
/ 06 августа 2010

Если вы храните время истечения в базе данных в виде поля даты или даты и времени, то вам следует выполнить обновление там:

UPDATE table SET expiry=DATE_ADD(expiry, INTERVAL 1 MONTH) WHERE ...;

Полная информация здесь .

...