Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.12.2018, 11:07
Интересующийся
Отправить личное сообщение для bridun Посмотреть профиль Найти все сообщения от bridun
 
Регистрация: 03.12.2018
Сообщений: 17

Как открывать и закрывать ссылку по таймеру с отсчетом времени до и после?
Подскажите как прикрутить к php javascript . Есть код и он работает, как к нему прикрутить таймер времени javascript такого авто обновления чтоб обновлять время и и сделать активную/не активную ссылку

внизу даю скрин увидел винтернете это такая крутилка видео
Код:
time_table.dat такого вида

1|text|link|04|12|2018|10:00:00|9:55:00|10:30:00| 
2|text|link|04|12|2018|16:00:00|16:55:00|17:30:00| 
3|text|link|04|12|2018|19:00:00|18:55:00|19:30:00| 

date_default_timezone_set('Europe/Kiev');//timzone


    $data =  file("time_table.dat");

  foreach($data as $rows) {

    $elem = explode("|", $rows);
    if (!strripos($rows, "|")) continue;
///////////////////////////////////////////////////////////////
$met = $elem[3].'-'.$elem[4].'-'.$elem[5].' '.$elem[7];
$metTS = strtotime($met);
//echo strftime("%d-%m-%Y %H:%M:%S", $metTS).'  ';
//echo strftime("%d-%m-%Y %H:%M:%S");
 $sub = $metTS - time();


$sub = abs($sub);
$days = (int)($sub / (24*60*60));
$hours = (int)(($sub - $days * 24 * 60 * 60) / (60*60));
$min = (int)(($sub - $days * 24 * 60 *60 - $hours * 60 * 60) / 60);
$sec = $sub - $days * 24 * 60 *60 - $hours * 60 * 60 - $min * 60;
/////////////////////////////////////////////////////////////////////
       $start = $elem[7];
       $end = $elem[8];
       $enter = '';
     $cur_time = strftime('%H:%M:%S', time());  
         
     if ($cur_time > $start && $cur_time < $end){
     $enter = '<a href="'.$elem[2].'" target="_blank">Активная</a></div>';
     }else{
     $enter = '<a href="#">Неактивная</a>';
     }
///////////////////////////////////////////////////////////////////
     
echo'<table border="1" align="center" cellpadding="0" cellspacing="0" width="300">

  <tr>
    <td valign="top" align="center"  width="150">
        '.$elem[3].'/'.$elem[4].'/'.$elem[5].'-'.$elem[6].'<br>
    '.$elem[1].'
    </td>
    <td valign="top" align="center"  width="150">	
       '. $hours.':'. $min.':'. $sec.'
        <br>'. $enter .'
    </td>
  </tr>
</table>';
  }
Изображения:
Тип файла: jpg yoituyiruorpuit.jpg (5.3 Кб, 2 просмотров)

Последний раз редактировалось bridun, 04.12.2018 в 19:26.
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2018, 11:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от bridun
как прикрутить к php js
Никак, РНР на сервере, JS на клиенте.
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2018, 16:42
Интересующийся
Отправить личное сообщение для bridun Посмотреть профиль Найти все сообщения от bridun
 
Регистрация: 03.12.2018
Сообщений: 17

ну хорошо а какое есть или возможное решение втаком случае
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2018, 17:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Решение чего? Что-то показать/скрыть по таймеру на клиенте, это javascript, причем тут РНР? Пишите что нужно скрывать/показывать и т.д., тогда и решение предложат.
Ответить с цитированием
  #5 (permalink)  
Старый 03.12.2018, 22:32
Интересующийся
Отправить личное сообщение для bridun Посмотреть профиль Найти все сообщения от bridun
 
Регистрация: 03.12.2018
Сообщений: 17

я для примера показал что я сделал и спросил что можно сделать в такомм случае
Ответить с цитированием
  #6 (permalink)  
Старый 03.12.2018, 22:33
Интересующийся
Отправить личное сообщение для bridun Посмотреть профиль Найти все сообщения от bridun
 
Регистрация: 03.12.2018
Сообщений: 17

я думаю что я достаточно понятно спросил и php здесь не причем
Ответить с цитированием
  #7 (permalink)  
Старый 04.12.2018, 01:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от bridun
я думаю что я достаточно понятно спросил
Нифига не понятно чего там скрывать. А понятно из РНР кода, что по условиям определяемых временем будет вывод в браузер той или иной ссылки. Вот только если говорить о РНР, то это большая глупость сравнивать не временные метки (time()), а их строковые представления. Сравнение строк может закончится совсем и не ожидаемым результатом.

Если это нужно сделать на клиенте, то данные для условия и ссылки, нужно передать клиенту, он тоже сделает, но это ни к чему.

А если речь о таймере, то не надо приводить тут РНР код, это ваши проблемы, а приводить чистый html, и поставить вопрос - как в нем что-то, показать/скрыть по таймеру, условию и т.п.

Если такого кода и пояснения не будет, то и вряд ли вам кто-то предложит решение.
Ответить с цитированием
  #8 (permalink)  
Старый 11.12.2018, 16:41
Интересующийся
Отправить личное сообщение для bridun Посмотреть профиль Найти все сообщения от bridun
 
Регистрация: 03.12.2018
Сообщений: 17

получилось переделать сылка открывается в нужное время а типерь ее нужно спрятать по истичению времени

<html>
<head>
<title> Таймер обратного отсчета </title>

</head>
<body >

<?php
//error_reporting (0);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
	//date_default_timezone_set('Europe/Kiev');//timzone
	
/**  time_table.dat
1|text|link|12|10|2018|10:00:00|09:55:00|10:30:00|  
2|text|link|12|10|2018|21:00:00|20:55:00|21:30:00|  
3|text|link|12|10|2018|22:00:00|21:55:00|22:30:00| 
*/
	date_default_timezone_set('Europe/Kiev');//timzone


    $data =  file("time_table.dat");

	foreach($data as $rows) {

		$elem = explode("|", $rows);
		if (!strripos($rows, "|")) continue;
		 
echo'<table border="1" align="center" cellpadding="0" cellspacing="0" width="300">

	<tr>
		<td valign="top" align="center"  width="150">
        '.$elem[3].'/'.$elem[4].'/'.$elem[5].'-'.$elem[6].'<br>
		'.$elem[1].'
		</td>
		<td valign="top" align="center"  width="150">
<script type="text/javascript">

/////////////////////////
timedown("'.$elem[3].','.$elem[4].','.$elem[5].','.$elem[7].'","link_'.$elem[0].'");
//var countDownDate = new Date("<?=$elem[3].','.$elem[4].','.$elem[5].','.$elem[8];?>").getTime();// до закрытия ссылки 
function timedown(ti,id){

var countDownDate = new Date(ti).getTime();

var x = setInterval(function() {

    var now = new Date().getTime();
    
    var distance = countDownDate - now;
    
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);
    
document.getElementById(id).innerHTML = "до входа<br>"+(days!=0 ? days + ":" : "") + (hours!= 0 ? hours + ":" : "") + (minutes != 0 ? minutes + ":" : "") + seconds + "<br><a href=\"#\">Неактивная</a>";

    if (distance < 0) {
        clearInterval(x);
        document.getElementById("link_'.$elem[0].'").innerHTML = "<a href=\"'.$elem[2].'\">Активная</a>";
		//window.location = "final.php" // по окончанию времени перейти на другу страницу

    }
}, 1000);
}

/**  помогите прикрутить таймер до закрытия ссылки и спрятать ссылку обратно*/

</script>		
		
<span id="link_'.$elem[0].'"></span>

		
		</td>
	</tr>
</table>';
	}

?>


</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать паузу после загрузки страницы? denisOgr AJAX и COMET 2 06.08.2011 15:01
Как передать что-то после location.replace? Nominus umbra Общие вопросы Javascript 26 23.12.2009 21:50
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
Как проверить ссылку на работоспособнось? Oleg_777 Общие вопросы Javascript 23 19.03.2009 18:57
Как постоянно запускать одну и туже ссылку? Maxim Общие вопросы Javascript 28 27.02.2009 09:25