И еще один вопрос по date():
Могу извлечь из sql информацию с датой и временем в формате "2011-09-16 19:56:52".
Каким образом можно прописать условие, при котором будет выполняться код, только если от полученного времени прошло не более 5 часов?
Спустя 7 минут, 27 секунд (16.09.2011 - 21:48) Игорь_Vasinsky написал(а):
1. switch->case
2. посмотреть примеры с работой функции date()
2. посмотреть примеры с работой функции date()
Спустя 2 минуты, 50 секунд (16.09.2011 - 21:50) Joliat написал(а):
По первому вопросу откопал:
|| - означает "или"?
По второму пытаюсь вникнуть, а не как!
Прошу помощи, если не сложно!
<?php
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) {
}
?>
|| - означает "или"?
По второму пытаюсь вникнуть, а не как!
Прошу помощи, если не сложно!
Спустя 4 минуты, 6 секунд (16.09.2011 - 21:54) Игорь_Vasinsky написал(а):
|| или OR - да это условие "или"
http://www.spravkaweb.ru/php/datafun/datetime
http://www.spravkaweb.ru/php/datafun/datetime
Спустя 2 минуты, 14 секунд (16.09.2011 - 21:57) rooor написал(а):
По второму смотри в сторону DATE() и mktime()
Текущее время в формате 0000-00-00 00:00:00 можно получить вот так:
И при помощи mktime можно отнять сколько угодно, хоть 5 часов, хоть 5 месяцев.
Если не так, не ругайте, я нуб в php, просто хотел помочь :D
Текущее время в формате 0000-00-00 00:00:00 можно получить вот так:
date("Y-m-d H:i:s");
И при помощи mktime можно отнять сколько угодно, хоть 5 часов, хоть 5 месяцев.
Если не так, не ругайте, я нуб в php, просто хотел помочь :D
Спустя 2 минуты, 15 секунд (16.09.2011 - 21:59) Игорь_Vasinsky написал(а):
давненько я подобными вопросами не задавался... нужно практиковать , эксперементировать, проверять и смотреть.
Спустя 7 минут, 56 секунд (16.09.2011 - 22:07) ИНСИ написал(а):
Цитата |
только если от полученного времени прошло не более 5 часов? |
если в sql хочешь отсортировать, то так:
SELECT * FROM `table` WHERE `date` > NOW() - INTERVAL 5 HOUR
если в php, то используй http://www.php.net/manual/ru/datetime.diff.php (работает в php 5 и выше)
Спустя 4 минуты, 59 секунд (16.09.2011 - 22:12) rooor написал(а):
Как вариант...
//Получаем текущую дату минус 5 часов
$date1=date("Y-m-d H:i:s", mktime(date("H")-5, date("i"), date("s"), date("m"), date("d"), date("Y")));
$sql=mysql_query("SELECT ... FROM ... ") ...;
while($res=mysql_fetch_assoc($sql)){
if ($res['date'] < $date1){
echo "Прошло больше 5-ти часов";
}
}
Спустя 3 минуты, 2 секунды (16.09.2011 - 22:15) Joliat написал(а):
давайте тогда приступим!)))
как я понимаю, мне нужно для сравнения времён, свести их к общему формату как сказал rooor.
вот такой код сейчас:
результат:
2011-09-16 06:35:35
2011-09-16 19:13:21
Как написать процедуру сравнения?
как я понимаю, мне нужно для сравнения времён, свести их к общему формату как сказал rooor.
вот такой код сейчас:
echo $com_time=$pred_msg[0]->comment_date;
echo '<br/>';
echo $now_time=date("Y-m-d H:i:s");
echo '<br/>';
результат:
2011-09-16 06:35:35
2011-09-16 19:13:21
Как написать процедуру сравнения?
Спустя 11 минут, 56 секунд (16.09.2011 - 22:27) Joliat написал(а):
по способу rooor выдает ошибку Warning: mysql_fetch_assoc() expects parameter 1 to be resource, string given
Спустя 1 минута, 26 секунд (16.09.2011 - 22:28) Игорь_Vasinsky написал(а):
Цитата |
$sql=mysql_query("SELECT ... FROM ... ") ...; |
если запрос не этот - то какой у тя?
Спустя 11 минут, 3 секунды (16.09.2011 - 22:39) Joliat написал(а):
Все, вопрос решен!
вот нашел код, чуть подмастерил:
вывод:
2011-09-16 06:35:35
2011-09-16 23:39:02
Разница между датами: 17 часов
вот нашел код, чуть подмастерил:
echo $date1=$pred_msg[0]->comment_date;
echo '<br/>';
echo $date2=date("Y-m-d H:i:s");
echo '<br/>';
$arr1 = explode(" ", $date1);
$arr2 = explode(" ", $date2);
$arrdate1 = explode("-", $arr1[0]);
$arrdate2 = explode("-", $arr2[0]);
$arrtime1 = explode(":", $arr1[1]);
$arrtime2 = explode(":", $arr2[1]);
$timestamp2 = (mktime($arrtime2[0], $arrtime2[1], 0, $arrdate2[1], $arrdate2[0], $arrdate2[2]));
$timestamp1 = (mktime($arrtime1[0], $arrtime1[1], 0, $arrdate1[1], $arrdate1[0], $arrdate1[2]));
$difference = floor(($timestamp2 - $timestamp1)/3600);
echo 'Разница между датами: '.$difference.' часов';
вывод:
2011-09-16 06:35:35
2011-09-16 23:39:02
Разница между датами: 17 часов
Спустя 1 минута, 35 секунд (16.09.2011 - 22:41) Игорь_Vasinsky написал(а):
молодец
Спустя 11 часов, 16 минут, 4 секунды (17.09.2011 - 09:57) ИНСИ написал(а):
Можно так:
$date1 = new DateTime($cometDate);
$date2 = new DateTime("now");
$diff = $date1->diff($date2);
echo 'Разница в '.$diff->format('%h'); .' часов';
_____________
О-о-о-о-о-очень начинающий...