Вычисление разницы в датах, PHP
190 сообщений
#15 лет назад
Господа программисты, помогите. Бьюсь уже два часа, голова не варит.Есть некая дата,заведомо меньше текущей. Нужно высчитать, прошло ли уже 30 минут с той даты до текущего момента. Как это сделать? Я понимаю что date() и mktime() - но запарился подбирать аргументы.
649 сообщений
#15 лет назад
"Мы предоставляем полный комплекс услуг по созданию и продвижению сайтов любой сложности."------------
Уберите это из резюме

По теме: в каком виде находится "некая дата"?
190 сообщений
#15 лет назад
При чем здесь резюме? Типа, если там так написано, то нет смысла спрашивать совета?Вид даты не имеет значения. Она в мускуле (тип DATETIME), но превратить из любого в любой я могу
649 сообщений
#15 лет назад
Если вы все можете, то в чем проблема?Превращаете текущую дату в Unix timestamp с помощью mktime(час, минута, секунда, месяц, день, год).
Текущее время в Unix timestamp - это time().
Отнимаете от текущего времени "некое время", делите на 1800. Вот вам разница между ними в минутах.
649 сообщений
#15 лет назад
Цитата ("vovan_f"):Гуглите php date diff.
Может не спасти, так как PHP 5 >= 5.3.0 нужно.
190 сообщений
#15 лет назад
"Все можете" и "Сэкономить время на совете" - чувствуете разницу. Сможем, но нужно быстро в данный момент, и гуглить нет времени.Почему 1800? Это что за число? 30*60? Может, делить на 60? (timestamp это секунды)
771 сообщение
#15 лет назад
Средствами MySqlЦитата:
DATEDIFF() returns expr1 – expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30';
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31';
-> -31
подробнее тут ссылка
649 сообщений
#15 лет назад
Цитата ("ConceptART"):Почему 1800? Это что за число? 30*60? Может, делить на 60? (timestamp это секунды)
Да.
Это я тупанул.
771 сообщение
#15 лет назад
Упс, недочитал сабж. DATEDIFF майэскьюэля не подходит, считает дни. Но есть ещё вариант высчитывать разницу сразу в запросе преобразованием unix_timestamp(date1) - unix_timestamp(date2)
1594 сообщения
#15 лет назад
Цитата ("penguin"):Если вы все можете, то в чем проблема?
Превращаете текущую дату в Unix timestamp с помощью mktime(час, минута, секунда, месяц, день, год).
Текущее время в Unix timestamp - это time().
Отнимаете от текущего времени "некое время", делите на 1800. Вот вам разница между ними в минутах.
Почти правильно =)
Преводим "некую дату" $time1 в unix timestamp через mktime.
Получаем текущую дату $time2 = time()
if(time2 - $time1 >= 1800) { echo "полчаса прошло!"; }
190 сообщений
190 сообщений
#15 лет назад
Спасибо всем, я пока отвлекся понял в чем была моя ошибка - я неправильно превращал из mysql datetime в unix timestamp - запарился сильно. Anexroid прав был.Еще раз - спасибо!