php дата / время интервалы с подпиской - PullRequest
1 голос
/ 07 июля 2011

Мне нужна помощь, чтобы обдумать это.Я пытаюсь разработать то, что делает ежемесячные, еженедельные, ежеквартальные, ежегодные подписки.Мне нужно выяснить, когда наступит следующая дата зарядки.Но я запутался, разбираясь с логикой.Я могу легко вычислить, когда год взят из исходной транзакции (<? echo date("Y-m-d",strtotime($charge_interval, strtotime($original_charge_time))); ?>), где $ charge_interval равен «+3 месяца» или «+1 месяц» и т. Д. Но ... если прошло 3 месяца, я не могуиспользуйте это уравнение, потому что оно покажет «следующую» дату как один месяц от оригинала.Любой совет?

РЕДАКТИРОВАТЬ: больше точности.Мои данные хранятся в БД, и мне нужно убедиться, что они получают «следующий» месяц, а не месяц от первоначальной даты.Скажем, сделка состоялась 15 ноября.Сейчас 6 июля.Я хочу, чтобы «следующая транзакция» говорила 15 июля, а НЕ 15 декабря (что и должно быть сделано в приведенном выше коде), и говорила «у нас уже было 7 сборов раньше».

Ответы [ 4 ]

2 голосов
/ 07 июля 2011

strtotime малоизвестен, но может оказаться очень полезным для такого рода использования.

РЕДАКТИРОВАТЬ: здесь может быть подсказка:

$charges = 0;
$now = time();
$next_charge_time = strtotime($original_charge_time);
while ($next_charge_time < $now)
{
    $charges++;
    $next_charge_time = strtotime($charge_interval, $next_charge_time);
}
$next_charge_time = date("m/d/Y", $next_charge_time);
echo "You have been charged $charges times since $original_charge_time.";
echo "<br/>";
echo "Next charge will be on $next_charge_time";
0 голосов
/ 07 июля 2011

Попробуйте mktime (0, 0, 0, strftime ("% d", $ origtime), дату ("m") + 1, дату ("Y"));

это означало бы, конечно, полночь (первые три параметра - H, M, S, вы можете использовать strftime и для них, если хотите)

, который будет работать в следующем календарном месяце, вы можете просто удалить «+1» для того же месяца, если вы работаете, день падает позже, чем текущий день.

0 голосов
/ 07 июля 2011
0 голосов
/ 07 июля 2011

Нет ли в php функции dateadd для добавления числа месяцев к дате?

Как этот?

http://php.net/manual/en/function.date-add.php

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