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

Форум PHP

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

 

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

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

тема: Таймер обратного отсчета по дням
 
 автор: Fau   (24.03.2006 в 11:43)   письмо автору
 
 

Подскажите пожалуйста, как посчитать сколько осталось дней до определенной даты (формат даты DD.MM). В итоге хотелось бы увидеть : Осталось X дней

   
 
 автор: Trianon   (24.03.2006 в 12:16)   письмо автору
 
   для: Fau   (24.03.2006 в 11:43)
 

<?php
  $target 
"08.03";
  list(
$td$tm) = explode('.'$target);
  
$td intval($td);  // нужный день
  
$tm intval($tm);  // нужный месяц
  
$time time();     // текущее время
  
$cy intval(date("Y"$time));    //текущий год
  
$cm intval(date("n"$time));    //текущий месяц
  
$cd intval(date("j"$time));    //текущий день
  
$ctime mktime(12,0,0,$cm,$cd,$cy);  // текущая дата - середина дня
  
$ttime mktime(12,0,0,$tm,$td,$cy);  // нужная  дата - середина дня
  
if($ttime $ctime)                   // если в этом году уже прошла
    
$ttime mktime(12,0,0,$tm,$td,++$cy); // возьмем в будущем
  
$days intval(round(($ttime $ctime)/(24*60*60))); // интервал в днях

  
echo "$days дней до $target.$cy";
?>

   
 
 автор: XPraptor   (24.03.2006 в 13:05)   письмо автору
 
   для: Trianon   (24.03.2006 в 12:16)
 

Trianon, не издевайся над языком PHP.
$dt_holiday=mktime(0, 0, 0, 12, 31, 2006);
print "УРА! До нового года осталось: " . date("d", ($dt_holiday - time())) . " дней!";

   
 
 автор: Trianon   (24.03.2006 в 13:26)   письмо автору
 
   для: XPraptor   (24.03.2006 в 13:05)
 

Я не издеваюсь. Я просто учитываю, что скрипт может быть вызван для любой даты и в любое время. Например тогда, когда выполняется переход с летнего времени на зимнее.
А Вы, по-моему, решаете совершенно другую задачу. Раз в сто более простую.

Впрочем, я не утверждаю, что задачу нельзя решить более элегантно. Но мне - лень, а у Вас, извините, не получилось.

   
 
 автор: Fau   (24.03.2006 в 13:20)   письмо автору
 
   для: Trianon   (24.03.2006 в 12:16)
 

Trianon Пасибо большое!
Твой вариант более подходящий :)

   
 
 автор: XPraptor   (24.03.2006 в 13:44)   письмо автору
 
   для: Fau   (24.03.2006 в 13:20)
 

Trianon, я не про то, что нужно универсальный скрипт, я про решение в принципе. :-)

$ardt=explode(".", "08.03");
$dt_holiday=mktime(0, 0, 0, $ardt[1], $ardt[0], date("Y",time()));
print "УРА! До нового года осталось: " . date("d", ($dt_holiday - time())) . " дней!";

[поправлено модератором]

   
 
 автор: Trianon   (24.03.2006 в 13:49)   письмо автору
 
   для: XPraptor   (24.03.2006 в 13:44)
 

Не до Нового года, а до моего Д.Р. :)))
Запустил Ваш вариант, оказалось, что до него осталось 15 дней, и хотя я смутно помню сам ДР, но был он где-то недели две назад...

   
 
 автор: XPraptor   (24.03.2006 в 13:51)   письмо автору
 
   для: Trianon   (24.03.2006 в 13:49)
 

Не 15 а минус 15 - от заданной отнимается дата текущая.

   
 
 автор: Trianon   (24.03.2006 в 13:55)   письмо автору
 
   для: XPraptor   (24.03.2006 в 13:51)
 

Fau, вероятно, делает напоминальник для поздравлений с ДР(или с какой другой датой) . Судя по тому , что год не указывает. Так что полезный ответ - не сколько прошло после попойки, а сколько осталось до следующей.

   
 
 автор: Loki   (24.03.2006 в 15:31)   письмо автору
 
   для: Trianon   (24.03.2006 в 13:55)
 

Да как сказать: вот проснулся ты после пятничной попойки, а сегодня оказывается уже вторник!:)

   
Rambler's Top100
вверх

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