помогите с интервалом между датами!!!

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
gagarin74
Сообщения: 331
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

помогите с интервалом между датами!!!

Сообщение gagarin74 » Ср июл 29, 2015 2:57 pm

что нужно.
1 сегодня (допустим) 23.02.15
2 нужно отсчитывать и получать каждый день ,сколько дней осталось до 20.03.15

в крации объясню для чего это надо(алгоритм можно применять на любых вещах).


есть некий проездной (абонемент в басейн,магнитная карта на метро).
Купили Вы его 23.02.15, купили и купили. Пользуетесь ни о чем не задумываясь.И в один прекрасный день он оказался просрочен.

Я этот алгоритм хочу привязать к проездному стрелка.У этой карты очень много разных событий можно зафиксировать (пополнение,списание,кол поездок итд итп).
Помогите кто чем может.
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: помогите с интервалом между датами!!!

Сообщение uni » Ср июл 29, 2015 3:09 pm

Ответ на русском языке давать в виде последовательности предложений?
Россия навсегда!
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: помогите с интервалом между датами!!!

Сообщение Dark_Veter » Ср июл 29, 2015 3:18 pm

Так можно попробовать.

Код: Выделить всё

$datetime1 = new DateTime('2015-02-23');
$datetime2 = new DateTime('2015-03-20');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%d%'); 
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
gagarin74
Сообщения: 331
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: помогите с интервалом между датами!!!

Сообщение gagarin74 » Ср июл 29, 2015 3:49 pm

Dark_Veter писал(а):Так можно попробовать.

Код: Выделить всё

$datetime1 = new DateTime('2015-02-23');
$datetime2 = new DateTime('2015-03-20');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%d%');
Большое спасибо!!!!! то что нужно.
Единственный вопрос .
Допустим переменная $action=0 стала равна единице $action=1
как увеличить при таком условии $datetime2 на 30 дней в перед?
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: помогите с интервалом между датами!!!

Сообщение Dark_Veter » Ср июл 29, 2015 4:09 pm

Примерно так:

Код: Выделить всё

$datetime2->add(new DateInterval('P30D'));
echo $datetime2->format('Y-m-d'); 
За это сообщение автора Dark_Veter поблагодарил:
gagarin74 (Ср июл 29, 2015 4:09 pm)
Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
gagarin74
Сообщения: 331
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: помогите с интервалом между датами!!!

Сообщение gagarin74 » Ср июл 29, 2015 4:10 pm

Dark_Veter писал(а):Примерно так:

Код: Выделить всё

$datetime2->add(new DateInterval('P30D'));
echo $datetime2->format('Y-m-d');
или может так :)

$dateexp = 30; //30 дней
$dateexp = date('Y-m-d', strtotime ('+'.$dateexp.' day'));
echo $dateexp;

в любом случаи спасибо!!!!!
gagarin74
Сообщения: 331
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: помогите с интервалом между датами!!!

Сообщение gagarin74 » Чт июл 30, 2015 11:41 am

Dark_Veter писал(а):Так можно попробовать.

Код: Выделить всё

$datetime1 = new DateTime('2015-02-23');
$datetime2 = new DateTime('2015-03-20');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%d%'); 
Поспешил спасибо сказать :(
вот это не работает
$datetime1 = new DateTime('2015-02-10');
$datetime2 = new DateTime('2015-03-20');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%d%');
четко выдает 10


а вот это работает
echo (strtotime('2015-04-20')-strtotime('2015-03-10'))/3600/24;
Ответить