Таймер обратного отсчета JavaScript в столбце MYSQL - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть таблица MYSQL, и я хотел бы разместить столбец обратного отсчета для каждого результата в таблице. Таймер должен считать от текущего времени до времени окончания столбца (столбец в той же таблице в формате DATETIME)

Как я могу это сделать? Я ссылаюсь на таймер Javascript с этого сайта http://keith -wood.name / countdown.html , однако не знаю, как сделать обратный отсчет до столбца конечного времени, а также отобразить таймер Javscript в строках стола.

Ответы [ 3 ]

2 голосов
/ 17 декабря 2011

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff

Вы не будете хранить столбец обратного отсчета напрямую.Вместо этого вы бы использовали timediff.

Так что-то вроде

select timediff(now(), end_time) from countdown_table
1 голос
/ 17 декабря 2011

Просто к вашему сведению, вы можете написать счетчик исключительно в javascript на клиенте.Если вы хотите отсчитывать время до определенного времени в будущем, которое хранится в базе данных mysql, вы все равно можете использовать Javascript и сделать что-то подобное на своей странице PHP:

<script>
var endTime = <?= $endTimeFromDb; ?>; // preferably a unix timestamp in ms
var relativeTime = new Date().getTime() - endTime; // relative ms until endTime
// now apply some fancy formatting and write it to the dom
</script>

Затем вы можете использовать что-то вроде TimeSpan.js, чтобы преобразовать ваше относительное время в красивый формат: https://github.com/idottv/TimeSpan.js

См. MDN для получения дополнительной информации об объекте JavaScript Date: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

После более внимательного изучения плагинавы хотите, чтобы вы использовали, я придумал это

var endTime = <?= $endTimeFromDb; ?>; // if it's a timestamp
var endTime = "<?= $endTimeFromDb; ?>"; // if it's a string
$("div.countdown").countdown({until: new Date(endTime)});

Дайте мне знать, если ни один из этих примеров не имеет никакого смысла.

1 голос
/ 17 декабря 2011

Я думаю, что вы смешиваете серверную и клиентскую стороны, хотя я не совсем уверен, что вы пытаетесь сделать.

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

...