Перейти к контенту

Счетчик оставшегося времени


Рекомендуемые сообщения

Посоветуйте что-нить, по проще, да по симпатичней :D

 

P.S. Было бы здорово если его можно было-бы использовать в подписи на IPB

Ссылка на комментарий
Поделиться на других сайтах

<?php
function dig_end($dig, $end1, $end2, $end3)
{
   if ($dig == '1') {
       return $end1;
   } else if ($dig >= '2' && $dig <= '4') {
       return $end2;
   } else {
       return $end3;
   }

}

function get_end($num, $end1, $end2, $end3)
{
   if ($num <= '20') {
       return "<b>".$num."</b> ".dig_end($num, $end1, $end2, $end3);
   } else {
       return "<b>".$num."</b> ".dig_end($num%10, $end1, $end2, $end3);
   }
}

$n_date = time(); //текущая дата
$b_date = mktime(0,0,0,12,31,2004); // дата до которой будем делать счетчик

$date_now = date("d-m-Y H:i", $n_date);

$diff=array();

$totalsec=$b_date-$n_date;
$diff['days']=round(($totalsec/86400));
$totalsec=$totalsec % 86400;
$diff['hours']=round(($totalsec/3600));
$totalsec=$totalsec % 3600;
$diff['minutes']=round(($totalsec/60));
$diff['seconds']=$totalsec % 60;

if ($diff['days']) {
   $str_time = get_end($diff['days'], "день", "дня", "дней");
}

$str_time .= " ".get_end($diff['hours'], "час", "часа", "часов");
$str_time .= " ".get_end($diff['minutes'], "минута", "минуты", "минут");
$str_time .= " и ".get_end($diff['seconds'], "секунда", "секунды", "секунд");

echo $str_time;
?>

Ссылка на комментарий
Поделиться на других сайтах

w!nter

дело в том, что в подписи - это чистый текст, т.е. не можешь получить доступа к php объектам. Только если сделать в post_parser какой-нибудь тег, который будет заменяться на время в определённом формате (вызов $std->get_date() ), а в подписи его использовать.

Ссылка на комментарий
Поделиться на других сайтах

Вот этот скриптик получше будет ! Он живой а не мёртвый !

<script language="JavaScript" >
function countdown_clock(year, month, day, hour, minute, format)
         {
         //I chose a div as the container for the timer, but
         //it can be an input tag inside a form, or anything
         //who's displayed content can be changed through
         //client-side scripting.
         html_code = '<div id="countdown"></div>';
         
         document.write(html_code);
         
         countdown(year, month, day, hour, minute, format);                
         }
         
function countdown(year, month, day, hour, minute, format)
         {
         Today = new Date();
         Todays_Year = Today.getYear() - 2000;
         Todays_Month = Today.getMonth() + 1;                  
         
         //Convert both today's date and the target date into miliseconds.                           
         Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(), 
                                 Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();        
         Target_Date = (new Date(year, month, day, hour, minute, 00)).getTime();                  

         //Find their difference, and convert that into seconds.                  
         Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
         
         if(Time_Left < 0)
            Time_Left = 0;
         
         switch(format)
               {
               case 0:
                    //The simplest way to display the time left.
                    document.all.countdown.innerHTML = Time_Left + ' seconds';
                    break;
               case 1:
                    //More datailed.
                    days = Math.floor(Time_Left / (60 * 60 * 24));
                    Time_Left %= (60 * 60 * 24);
                    hours = Math.floor(Time_Left / (60 * 60));
                    Time_Left %= (60 * 60);
                    minutes = Math.floor(Time_Left / 60);
                    Time_Left %= 60;
                    seconds = Time_Left;
                    
                    dps = 's'; hps = 's'; mps = 's'; sps = 's';
                    //ps is short for plural suffix.
                    if(days == 1) dps ='';
                    if(hours == 1) hps ='';
                    if(minutes == 1) mps ='';
                    if(seconds == 1) sps ='';
                    
                    document.all.countdown.innerHTML = '<font size="2"><b>'+days + '</b></font> дней ';
                    document.all.countdown.innerHTML += '<font size="2"><b>'+hours + '</b></font> часов ';
                    document.all.countdown.innerHTML += '<font size="2"><b>'+minutes + '</b></font> минут и ';
                    document.all.countdown.innerHTML += '<font size="2"><b>'+seconds+ '</b></font> сек';
                    break;
               default: 
                    document.all.countdown.innerHTML = Time_Left + ' seconds';
               }
               
         //Recursive call, keeps the clock ticking.
         setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000);
         }
</script>
<script type="text/javascript">countdown_clock(04, 12, 31, 00, 00, 1);</script>

Ссылка на комментарий
Поделиться на других сайтах

super Установил у себя (IPB1.3.1) этот мод, все работает, но к сожалению не пашет в подписи :D

 

Добавлено в [mergetime]1096806652[/mergetime]

Нашел ! Проверил - Работает !

 

Вот здесь иструкция как сделать что-бы работало и в подписи !

Ссылка на комментарий
Поделиться на других сайтах

TAPAKAH2 и работает с 2.0?

 

я как на 1.2 ставила, намучалась, много чего вставлять надо было

Как то не хочется время зря тратить если не работает :D

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
TAPAKAH2, а как вставить переменную из РНР скрипта в качестве "даты Х" в этот Ява скрипт?
Ссылка на комментарий
Поделиться на других сайтах

YuriR

Вот тут !

год|месяц|число|час|мин|сек

<script type="text/javascript">countdown_clock(04, 12, 31, 00, 00, 1);</script>

Ссылка на комментарий
Поделиться на других сайтах

Eve тебе нужно именно JAVA ?

Ну, на крайняк можно и не Яву, но например РНР скрипт в этой теме немного глючный.

У Явы кстати тоже наблюдаются глюки. Когда идет таймаут

0мин. 50сек.

он вроде показывает

1мин. ххсек.

а потом резко прыгает с

1мин. 30сек.

на

30сек.

Ссылка на комментарий
Поделиться на других сайтах

  • 10 месяцев спустя...
Вот этот скриптик получше будет ! Он живой а не мёртвый !

<script language="JavaScript" >
function countdown_clock(year, month, day, hour, minute, format)
      , 00, 00, 1);</script>

 

 

Понимаю что уже почти год прошел, но может кто-то ответит?

 

Мне на моей странице нужно поставить несколько таких счетчиков, но почему-то отображается только первый из них, остальные по какой-то причине не видны. Убираю первый - работает второй, и не работают следующие, и т.д.

 

Отвечайте на имейл, rx9tx at qrz.ru

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.