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

Форум PHP

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

 

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

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

тема: Узнать когда наступит 24h с момента отсчета и сколько осталось часов:минут
 
 автор: TetRiska   (26.09.2011 в 18:05)   письмо автору
 
 

Всем привет. Имею такой скрипт:
$date_st = '2011-09-26 12:11:55';
$date_en = date('Y-m-d H:i:s');

list($date_st_date,$date_st_time) = explode(' ',$date_st);
list($date_en_date,$date_en_time) = explode(' ',$date_en);

list($date_st_year,$date_st_month,$date_st_day)     = explode('-',$date_st_date);
list($date_st_hour,$date_st_minute,$date_st_second) = explode(':',$date_st_time);

list($date_en_year,$date_en_month,$date_en_day)     = explode('-',$date_en_date);
list($date_en_hour,$date_en_minute,$date_en_second) = explode(':',$date_en_time);

$mk_date_in = mktime(24,0,0,0,0,0);
$mk_date_st = mktime($date_st_hour,$date_st_minute,$date_st_second,$date_st_month,$date_st_day,$date_st_year);
$mk_date_en = mktime($date_en_hour,$date_en_minute,$date_en_second,$date_en_month,$date_en_day,$date_en_year);

$sec     = $mk_date_en - $mk_date_st;
$days    = floor($sec / 86400);

$sec2    = $mk_date_in - ($mk_date_en - $mk_date_st);
$days2   = floor($sec2 / 86400);
$hours   = floor(($sec2 - $days2 * 86400) / 3600);
$minutes = floor(($sec2 - $days2 * 86400 - $hours * 3600) / 60);

echo "Прошло дней : $days<br/>";
echo "Осталось до истечения срока : ".$hours."h ".$minutes."m";

Скрипт предназначен для определения истечения срока жизни ключа активации аккаунта. Т.е. если дней = 0, то еще активация возможна, если уже больше, то нет.
Но это для скрипта по определению нужно. Вторая часть заключается в визуальном сопровождении, т.е. при переходе по ссылке активации юзер будет видеть сколько осталось до истечения срока. Срок жизни ключа 24 часа. Мне выводит не совсем корректно вторую часть. Прошу помощи.

  Ответить  
 
 автор: cheops   (26.09.2011 в 21:46)   письмо автору
 
   для: TetRiska   (26.09.2011 в 18:05)
 

Пока не очень понятно, может по тому, что время уже прошло... как должен вести себя скрипт, если время $date_st > $date_en и как должен вести себя скрипт, если $date_st < $date_en?

  Ответить  
 
 автор: TetRiska   (27.09.2011 в 00:46)   письмо автору
 
   для: cheops   (26.09.2011 в 21:46)
 

от второй части отказался ибо мороки с ней и в принципе толк от нее не велик.....а по сути то если:
$date_st > $date_en

такого не может быть изначально, т. к. конечная дата всегда будет больше предшествующей
а если:
$date_st < $date_en

сейчас выводит сколько времени прошло от первой точки до текущего времени, мне в принципе это и подошло, я узнаю если в переменной не ноль, а один день, то сбрасываю ключ и гоню на повторную регистрацию.

  Ответить  
Rambler's Top100
вверх

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