2015-04-21 5 views
1

Я использую обратный отсчет плагин JQuery, чтобы таймер на моем сайте http://keith-wood.name/countdownRef.htmlИспользования PHP внутри функции JavaScript

Я использую API от SportsRadar перечислить некоторые приборы, которые имеют даты на

<?php echo date("Y/d/m/ - H:i", strtotime($nextMatch['KickOff'])); ?> 

это будет выход как 23/04/2015 - 20:00

В обратном отсчете плагин их функции является следующей

<script> 
    var matchDay = new Date(); 
    matchDay = new Date(2015, 04-1, 22, 20, 0, 0); 
</script> 

Я просто хочу знать, как добавить это PHP-эхо в эту функцию JavaScript? Возможно ли это?

+0

Если вы готовы, чтобы заставить пользователей установить PHP в своих браузерах, это технически возможно. Но никто этого не сделает. – yergo

+6

вы можете, но PHP-код будет запускаться ** ONCE **, на сервере, и его выход станет частью JS-кода. вы не можете смешивать php и javascript и выполнять оба действия одновременно. это просто невозможно. PHP только на стороне сервера, JS - это (обычно) клиентская сторона. –

+0

вам нужно преобразовать дату в формате, распознаваемом скриптом, затем используйте 'matchDay = new Date (); ' –

ответ

1

Вам использовать что-то вроде:

var matchDay = new Date(<?php $time = strtotime($nextMatch['KickOff']); 
echo date("Y", $time) . "," . date("m", $time) . "," . 
    date("m", $time) . "," . date("H", $time) . "," . 
    date("i", $time); 
?>, 0, 0); 

Или вам дату разбора в JavaScript

0

PHP является серверным и будет работать один раз. JS сильно отличается от этого. Если вам нужно, чтобы JS вызывал скрипт PHP, рассмотрите возможность вызова AJAX. Однако, глядя на ваши цели, это кажется ненужным. Если вы хотите только эхо-данные, вы можете использовать JS для обновления HTML-элементов на странице. Я считаю, что это будет простое решение для ваших требований.

1

PHP функция strtotime() дает количество секунд, прошедших с 1970 года Вы можете использовать эту информацию, чтобы инициализировать Javascript Date объект. Однако, JavaScript ожидает, что число миллисекунд, начиная с 1970 года, таким образом, вы должны умножить значение на 1000:

<script> 
    var matchDay = new Date(<?php echo strtotime($nextMatch['KickOff'])*1000;?>); 
</script> 

Теперь вы знаете, когда матч будет проходить (в JavaScript), и вы можете использовать его, чтобы инициализировать обратный отсчет или что-то еще, что вы хотите сделать с этой информацией.

0

Делая это все работало нормально

<script> 
var matchDay = new Date(); 
    matchDay = new Date('<?php echo date("Y", strtotime($nextMatch['KickOff'])); ?>', '<?php echo date("m", strtotime($nextMatch['KickOff'])); ?>'-1, '<?php echo date("d", strtotime($nextMatch['KickOff'])); ?>', '<?php echo date("H", strtotime($nextMatch['KickOff'])); ?>','<?php echo date("i", strtotime($nextMatch['KickOff'])); ?>'); 
</script> 
Смежные вопросы