2015-10-03 3 views
0

Ну, это, вероятно, легко для вас, но я серьезно не могу заставить его работать.Обратный отсчет от определенной даты от mysql

Так что я хотел бы сделать, это сделать обратный отсчет, основанный на дате от mysql, и сделать это в режиме реального времени без необходимости обновления.

Код:

<?php 
$date = strtotime($row_tournaments['date']); 
$remaining = $date - time(); 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); 
$minutes_remaining = floor(($remaining % 3600)/60); 
$seconds_remaining = ($remaining % 60); 
echo "<p>$days_remaining <span style='font-size:.3em;'>dias</span> $hours_remaining <span style='font-size:.3em;'>horas</span> $minutes_remaining <span style='font-size:.3em;'>minutos</span> $seconds_remaining <span style='font-size:.3em;'>segundos</span></p>"; 
?> 

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

Так я найти этот ответ,

Код:

<p id="counter"></p> 

<script> 
var counter = new Date(2015,10,10,20,25,30); 
var counterElem = document.getElementById("counter"); 
setInterval(function() 
{ 
counter.setSeconds(counter.getSeconds() - 1); 
counterElem.innerHTML = counter.getDate()+" <span style=\'font-size:.3em;\'>dias</span> "+counter.getHours()+" <span style=\'font-size:.3em;\'>horas</span> "+counter.getMinutes()+" <span style=\'font-size:.3em;\'>minutos</span> "+counter.getSeconds()+" <span style=\'font-size:.3em;\'>segundos</span>"; 
},1000); 
</script> 

, что на самом деле работает довольно хорошо, но проблема в том, что

new Date(2015,10,10,20,25,30) 

принимает только этот формат, и в моей базе данных формат даты

2015-10-06 06:17:18 

И я не умею конвертировать.

Пожалуйста, помогите, если у вас, ребята, лучшее решение, хорошо приветствуется.

Спасибо за ваше время.

Cumps.

Весь код:

<div id="countdownContainer"> 
<a href="tournaments.php?id_tournament=<?php echo $row_tournaments['id_tournament']; ?>"><img src="images/wallpapers/<?php echo $row_tournaments['logo']; ?>.jpg"></a> 
<div id="countdownContent"> 
<p>Próximo Torneio:</p> 
<?php 
$date = strtotime($row_tournaments['date']); 
$remaining = $date - time(); 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); 
$minutes_remaining = floor(($remaining % 3600)/60); 
$seconds_remaining = ($remaining % 60); 
echo "<p>$days_remaining <span style='font-size:.3em;'>dias</span> $hours_remaining <span style='font-size:.3em;'>horas</span> $minutes_remaining <span style='font-size:.3em;'>minutos</span> $seconds_remaining <span style='font-size:.3em;'>segundos</span></p>"; 
?> 


<p id="counter"></p> 
<script> 
str = "$row_tournaments['date']"; // Your db format var date = new Date(Date.parse(str)); 
str = str.replace(/-/g,"/"); 
var counter = new Date(Date.parse(str)); 
var counterElem = document.getElementById("counter"); 
setInterval(function() 
{ 
counter.setSeconds(counter.getSeconds() - 1); 
counterElem.innerHTML = counter.getDate()+" <span style=\'font-size:.3em;\'>dias</span> "+counter.getHours()+" <span style=\'font-size:.3em;\'>horas</span> "+counter.getMinutes()+" <span style=\'font-size:.3em;\'>minutos</span> "+counter.getSeconds()+" <span style=\'font-size:.3em;\'>segundos</span>"; 
},1000); 
</script> 

</div> 
</div> 
+0

для преобразования вашей строки из БД используйте 'var date = new Date (Date.parse (" 2015-10-06 06:17:18 "));' – Saar

+0

хорошо, я guees, который может работать, но prob im делает что-то не так, должен ли я поставить код как этот var counter = new Date (Date.parse ($ row_tournaments ['date'])) ;? потому что если да, то это не работает, дата не появляется. – Bruno

+0

@Saar, который возвращает недопустимую дату в некоторых браузерах, потому что строка не является допустимым форматом – charlietfl

ответ

1

Вы можете сделать как этот

var str = "2015-10-06 06:17:18"; // Your db format 
str = str.replace(/-/g,"/"); 
var date = new Date(Date.parse(str)); 

Здесь во второй строке я заменяющего разделитель - с /. Это связано с тем, что Date.parse() ожидает разделителя как/

+0

Я делаю это, и это хорошо, но когда я меняю дату «2015-10-06 06:17:18» с моей датой из базы данных $ row_tournaments ['date'] ничего не появляется. Cumps. – Bruno

+0

Вы уверены, что $ row_tournaments ['date'] имеет значение в нем? Может быть, оно пусто. распечатайте его и посмотрите, есть ли у него значение –

+0

Эй, у меня есть твоя проблема. Вы должны отсортировать свою переменную в котировках, как показано ниже: «$ row_tournaments ['date']" –

Смежные вопросы