Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Функция subdate()

Сообщения:  [1-9] 

 
 автор: AlexHog   (17.11.2006 в 13:10)   письмо автору
 
   для: cheops   (16.11.2006 в 13:50)
 

спасибо большое ))

   
 
 автор: cheops   (16.11.2006 в 23:31)   письмо автору
 
   для: Trianon   (16.11.2006 в 14:01)
 

Функция точно в четвёртой версии реализована, возможно раньше, так как в манулале 3.23, 4.0, 4.1 она не сопровождается упоминанием версии введения (сейчас тактика такая у MySQL AB, если функция реализгована в 3.23, 4.0, 4.1 то об версии введения сообщается в этом мануале, если в 5.0, то в мануале 5.0, если в 5.1, то в мануале 5.1).

PS В старых русских мануалах, которые создавались на базе 4.0 сортировка не правильная, поэтому можно пропустить функцию, тут лучше на английский мануал ориентироваться (как в прочем и в PHP).

   
 
 автор: Trianon   (16.11.2006 в 14:01)   письмо автору
 
   для: cheops   (16.11.2006 в 12:20)
 

TO_DAYS() здесь всяко предпочтительней.
Однако в русском мануале я её не нашел. С какой версии она реализована?

   
 
 автор: cheops   (16.11.2006 в 13:50)   письмо автору
 
   для: AlexHog   (16.11.2006 в 13:45)
 

Да, для этого следует воспользоваться функцией mysql_result()
<?php
$query 
"SELECT unix_timestamp(now( ))"
$ath mysql_query($query); 
if(!
$ath) exit (mysql_error()); 
echo 
mysql_result($ath0);
?>

   
 
 автор: AlexHog   (16.11.2006 в 13:45)   письмо автору
 
   для: Trianon   (16.11.2006 в 10:21)
 

спасибо ))

   
 
 автор: AlexHog   (16.11.2006 в 13:45)   письмо автору
 
   для: cheops   (16.11.2006 в 12:20)
 

спасибо, вроде получается.
Еще два вопроса, если можно:

. можно ли записать такой скрипт короче? обязателен ли цикл while, если запросили не выборку из таблицы, а один-единственный элемент?

$query = "SELECT unix_timestamp(now( ))";
$ath = mysql_query($query);
if(!$ath) exit (mysql_error());
while ($row = mysql_fetch_row($ath))
{
echo $row[0] . "<br>";
}


. почему время, получаемое таким образом, на 53 секунды расходится со временем, которое выдает команда "echo time();"? то есть не в моем конкретном случае, а вообще - как такое в принципе возможно? сервер-то один и тот же?

   
 
 автор: cheops   (16.11.2006 в 12:20)   письмо автору
 
   для: AlexHog   (16.11.2006 в 10:02)
 

subdate() не применяется к двум датам, в этом случае функция возвращает неопределённый результат, область деятельности функции вычитание из даты интрервала, обычно дату предварительно переводят в секунды при помощи UNIX_TIMESTAMP(), как написал Trianon, или в дни при помощи функции TO_DAYS().

   
 
 автор: Trianon   (16.11.2006 в 10:21)   письмо автору
 
   для: AlexHog   (16.11.2006 в 10:02)
 

проще всего будет преобразовать даты в линейный формат (UNIX_TIMESTAMP() ), в нем их вычесть и привести к нужной единице измерения.
Как минимум, пока даты находятся в диапазоне представления unixtime.

   
 
 автор: AlexHog   (16.11.2006 в 10:02)   письмо автору
 
 

Здравствуйте.
Как правильно вычислять разницу между двумя датами?

Мне нужно узнать, сколько дней человек зарегистрирован на сайте. Функция работает, когда я задаю интервал в некоторое количество дней, то есть получает текущую дату минус сколько-то дней, и результат можно сравнить с датой извлеченной из БД; но когда я делаю например SELECT subdate( "2006-11-16", "2006-11-15" ) ; - в ответ получаю 2001-05-20. Почему такой странный результат?

Есть книга Ульмана "Руководство по изучению Mysql" - там этот момент вообще не рассматривается...

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования