Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2008, 10:26   #1
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
По умолчанию Обратный отсчёт

Доброго времени суток. Есть проблемка, если кто сталкивался помогите.
Задача: есть конечное время и текущее. Есть сервер-скрипт на php, есть js скрипт реализующий конект каждую секунду (на Ajax). Надо находить разницу, между временем и выводить, но загвоздка в том, что может получиться число с минусом, я эту проблему решил, но вот ещё 1 баг, если конечное время задать не целым числом, то скрипт вычетает минуту на той секунду, на которую больше конечное время. Пример: Начальное время: 7:28:00, конечное: 8:40:30. Так вот по логике, когда секунд не остается вычетается 1 минута и секунд опять 60, так вот эту минуту, скрипт исходя из этих данных вычтет на 30 секунде.
Вот код:
PHP код:
$today_time=date("H:i:s");
$time=explode(":",$today_time);
$hour=$time[0];$min=$time[1];$sec=$time[2];
$time2=explode(":","конечное время в формате чч:мм:сс");
$hour2=$time2[0];$min2=$time2[1];$sec2=$time2[2];
$hh=$hour2-$hour;$mm=$min2-$min;$ss=$sec2-$sec;
    if(
$ss<=0)
    {
        if(
$mm<=0)
        {
            if(
$hh<=0)
            {
            
$hh=60+$hh;
            
$mm=60+$mm;
               
$ss=60+$ss;
            }
            else
            {
            
$hh--;
            
$mm=60+$mm;
               
$ss=60+$ss;
            }
        }
        else
        {
            if(
$hh<=0)
            {
            
$hh=60+$hh;
               
$ss=60+$ss;
                   if(
$ss==0)
                   {
                   
$mm--;
                   }
            }
            else
            {
            
$hh--;
               
$ss=60+$ss;
                   if(
$ss==0)
                   {
                   
$mm--;
                   }
            }
        }
    }
    else
    {
        if(
$mm<=0)
        {
            if(
$hh<=0)
            {
            
$hh=60+$hh;
            
$mm=60+$mm;
               
$ss--;
            }
            else
            {
            
$hh--;
            
$mm=60+$mm;
               
$ss--;
            }
        }
        else
        {
            if(
$hh<=0)
            {
            
$hh=60+$hh;
               
$ss--;
                   if(
$ss==0)
                   {
                   
$mm--;
                   }
            }
            else
            {
            
$hh--;
               
$ss--;
                   if(
$ss==0)
                   {
                   
$mm--;
                   }
            }
        }
    }
echo(
$hh.":".$mm.":".$ss); 
Причём этот баг происходит и с часами.
Это последняя версия кода так сказать были и другие, но они более багнутые.
Пожалуйста, кто подобное делал помогите. С уважением Андрей.
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...
mager вне форума Ответить с цитированием
Старый 10.11.2008, 10:45   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Есть такая очень полезная функция
http://ru2.php.net/manual/en/function.strtotime.php
проще использовать её...

еще по теме http://programmersforum.ru/showthread.php?t=26486
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 10.11.2008, 20:44   #3
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
По умолчанию

да все работает и код короче. Спасибо
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...
mager вне форума Ответить с цитированием
Старый 01.04.2009, 17:16   #4
BO2RIS323213
Новичок
Джуниор
 
Регистрация: 01.04.2009
Сообщений: 1
Радость

Как раз простое решение для сайта по средствам функции strtotime()

оригинал здесь Обратный отсчет

Источник: http://vladwebstudio.ru/
BO2RIS323213 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратный гиперболический синус Lofty Помощь студентам 2 07.10.2008 18:20
Обратный отсчет в прогрессбар Stanislav Общие вопросы Delphi 3 09.01.2008 16:49