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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Функция определения недель дней месяцев назад от даты
 
 автор: sidPR   (04.02.2007 в 21:12)   письмо автору
 
 

есть к примеру дата 2005-08-12 20:32:49 такого формата ...
нужно чтоб выводило рядом такую информацию (77 нед. назад) или там 2 дня назад ... может кто реализовывал даст формулу подсчета?

   
 
 автор: Alph[p]a   (04.02.2007 в 21:48)   письмо автору
 
   для: sidPR   (04.02.2007 в 21:12)
 

Когда люди поиском будут пользоваться?...
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=26376&page=1
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=21249&page=1

   
 
 автор: sidPR   (04.02.2007 в 22:47)   письмо автору
 
   для: Alph[p]a   (04.02.2007 в 21:48)
 

ничего похоже не нашел ...
вот к примеру


function get_time()
{
$day = 4;  
$month = 2;  
$year = 2007; 

$time = mktime(12,00,00,$month, $day, $year); 
$time -= 12*24*60*60; 

$day = intval(date('j', $time));  
$month = intval(date('n', $time));  
$year = intval(date('Y', $time)); 
return $day;
}


возвращяется почемуто число 23 ... ?

   
 
 автор: Trianon   (04.02.2007 в 22:54)   письмо автору
 
   для: sidPR   (04.02.2007 в 22:47)
 

потому что 12 дней назад было 23-е число. 23-01-2007

Вы бы поконкретнее написали, в каком формате хотите видеть интервал.
А то непонятно, то ли он должен быть в днях, то ли в месяцах, то ли в неделях...

   
 
 автор: sidPR   (04.02.2007 в 23:05)   письмо автору
 
   для: Trianon   (04.02.2007 в 22:54)
 

Мне нужно выводить так если например если число было если это было 3 часа назад то и выводит это было 3 часа назад если 1 день по времени если считать то напишет 1 день надаз если недель то и пишет что мол стокото недель назад ... если ужэ больше 4 недель то пишет месяц назад .. и так далее

   
 
 автор: Trianon   (04.02.2007 в 23:16)   письмо автору
 
   для: sidPR   (04.02.2007 в 23:05)
 


$timediff = time() - mktime(12,00,00,$month, $day, $year);  
$timediff  /= 60*60;
if($timediff <60) 
   echo "$timediff секунд назад";
else if(($timediff = intval($timediff/60)) < 60) 
   echo "$timediff минут назад";
else if(($timediff = intval($timediff/60)) < 24) 
   echo "$timediff часов назад";
else if(($timediff = intval($timediff/24)) < 14) 
   echo "$timediff дней назад";
else if(($weeks= intval($timediff/7)) < 4) 
   echo "$weeks недели назад";
else if(($months= intval($timediff/30.4)) < 12) 
   echo "$monts месяцев назад";
и так далее... (с плохо скрытым сарказмом)

   
 
 автор: sidPR   (04.02.2007 в 23:23)   письмо автору
 
   для: Trianon   (04.02.2007 в 23:16)
 

сделал (спасибо за формулы )


function get_time()
{
$month=2;
$day=4;
$year=2007;
$timediff = time() - mktime(23,00,00,$month, $day, $year);   
$timediff  /= 60*60; 
if($timediff < 60)  
  $time = "$timediff секунд назад"; 
else if(($timediff = intval($timediff/60)) < 60)  
  $time = "$timediff минут назад"; 
else if(($timediff = intval($timediff/60)) < 24)  
   $time = "$timediff часов назад"; 
else if(($timediff = intval($timediff/24)) < 14)  
   $time = "$timediff дней назад"; 
else if(($weeks= intval($timediff/7)) < 4)  
  $time = "$weeks недели назад"; 
else if(($months= intval($timediff/30.4)) < 12)  
   $time = "$monts месяцев назад"; 
return $time;
}



возврощяет что типо : 0.38833333333333 секунд назад

хотя должно написать чтото типо 23 минут назад

   
 
 автор: sidPR   (04.02.2007 в 23:47)   письмо автору
 
   для: sidPR   (04.02.2007 в 23:23)
 

Как пользоватся объясните плиз а то чтото не так я мож делаю ?

   
 
 автор: sidPR   (05.02.2007 в 00:02)   письмо автору
 
   для: sidPR   (04.02.2007 в 23:47)
 

в коже ошибочка была $timediff /= 60*60;
я переделал на :$timediff = $timediff/60*60;
и заработало ! спасибо !

   
 
 автор: bronenos   (05.02.2007 в 01:08)   письмо автору
 
   для: sidPR   (05.02.2007 в 00:02)
 

Я тут вам несколько подробнее написал =)
http://phx.freedomf.net/set/timediff.txt

   
Rambler's Top100
вверх

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