Здравейте, програмисти! 
Ситуацията е следната:
Запазвам моментния час (ч/м/с) в MySQL база данни, като мога да добавям 1,2,5 и 10 часа към него (Пример: &сегашното време +1). Визуализирам го с прост PHP/JavaScript таймер. Но тук възникна проблем - при рефреш на браузъра (задържам Ctrl + R за Опера) ми изкарва всичко както си му е реда, примерно "Остават 30:33 минути до...". Но след точно 1 секунда, изписва NaN, там, където трябва да е 30:32. Някой има ли идея как да го оправя? Грешката ми е някъде по JavaScript-a, но къде?
Ако $var3 се премахне и се изпише само $var2 (в JS), всичко си е наред, но там, както се сещате форматът на часа е timestamp и е от вида 3600 секунди за 1 час, а на мен ми трябва 1 час да се визуализира като 1:00:00, а не като 3600. Подразбира се, че следващата стойност трябва да е 0:59:59, а не 3599 и т.н.
Структурата на базата ми данни е:
id | timee | plus, т.е. номер | време на добавянето | колко да се добавят (1,2,5,10 часа)
Прилагам единствения файл:
Поздрави!
Ситуацията е следната:
Запазвам моментния час (ч/м/с) в MySQL база данни, като мога да добавям 1,2,5 и 10 часа към него (Пример: &сегашното време +1). Визуализирам го с прост PHP/JavaScript таймер. Но тук възникна проблем - при рефреш на браузъра (задържам Ctrl + R за Опера) ми изкарва всичко както си му е реда, примерно "Остават 30:33 минути до...". Но след точно 1 секунда, изписва NaN, там, където трябва да е 30:32. Някой има ли идея как да го оправя? Грешката ми е някъде по JavaScript-a, но къде?
Ако $var3 се премахне и се изпише само $var2 (в JS), всичко си е наред, но там, както се сещате форматът на часа е timestamp и е от вида 3600 секунди за 1 час, а на мен ми трябва 1 час да се визуализира като 1:00:00, а не като 3600. Подразбира се, че следващата стойност трябва да е 0:59:59, а не 3599 и т.н.
Структурата на базата ми данни е:
id | timee | plus, т.е. номер | време на добавянето | колко да се добавят (1,2,5,10 часа)
Прилагам единствения файл:
Код:
<?php
require "conf.php";
if(isset($_POST['add'])) {
$timee = time();
$plus = $_POST['plus'];
$result = mysql_query("INSERT INTO `time` (id, timee, plus) VALUES (NULL, '$timee', '$plus')") or die(mysql_error());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php if ($_POST['add']) : ?>
Времето е добавено!<br/><br/><br/>
<a href="addtime.php">Обратно</a>
<?php endif; ?>
<?php if(!isset($_POST['add'])) : ?>
<p>
<?php
$result = mysql_query("SELECT * FROM `time` ORDER BY timee DESC LIMIT 1") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$date = date("G:i",$row['timee']);
print "<font color=\"Blue\">Current time:</font> <font color=\"Red\">". $date ."</font> ";
print "<font color=\"Green\">+".$row['plus']."</font> ";
print "New date: ". date("G:i",($row['timee'] + $row['plus'] * 60 * 60)) ."<br/>";
//Настройка на брояча
$var = $row['timee'] + $row['plus'] * 60 * 60;
$var2 = $var - time();
$var3 = date("i:s", $var2);
}
print "<br/>NOW: ".date("G:i:s", time());
?>
<form action="" method="post">
<b>Време:</b>
<select name="plus">
<option value="1">+1 hour</option>
<option value="2">+2 hours</option>
<option value="5">+5 hours</option>
<option value="10">+10 hours</option>
</select><br/><br/>
<input type="submit" name="add" value="Дай гаааз!" />
</form>
<div id="countDown"></div>
<script>
window.onload = function() {
startCountDown("<?= $var3 ?>", 1000, myFunction);
}
function startCountDown(i, p, f) {
var pause = p;
var fn = f;
var countDownObj = document.getElementById("countDown");
if (countDownObj == null) {
alert("div not found, check your id");
return;
}
countDownObj.count = function(i) {
this.innerHTML = i;
if (i == 0) {
fn();
return;
}
setTimeout(function() {
countDownObj.count(i - 1);
},
pause
);
}
countDownObj.count(i);
}
function myFunction() {
document.location.href="some_file.php";
}
</script>
</p>
<?php endif; ?>
</body>
</html>
Поздрави!