JavaScript обратный отсчет до формата даты и времени MySQL - PullRequest
0 голосов
/ 25 сентября 2010

У меня есть дата из базы данных MySQL в формате datetime, что-то вроде 2010-09-24 11:30:12.И мне нужен способ показать отсчет часов: минут до этой даты.

Я не очень знаком с датами в JavaScript, поэтому любая помощь будет оценена.Спасибо.

Ответы [ 3 ]

3 голосов
/ 25 сентября 2010

Возможно, вы захотите использовать функцию UNIX_TIMESTAMP() в MySQL, чтобы вернуть вашу дату в Unix Time Format (количество секунд с 1 января 1970 года). Допустим, наша целевая дата - '2011-01-01 00:00:00' (на самом деле, скорее всего, у вас есть поле из таблицы вместо константы):

SELECT UNIX_TIMESTAMP('2011-01-01 00:00:00') AS timestamp;
+---------------+
| timestamp     |
+---------------+
| 1293836400    |
+---------------+
1 row in set (0.00 sec)

Затем мы можем использовать метод getTime() объекта Date в JavaScript, чтобы вычислить количество секунд между текущим временем и целевым временем. Получив количество секунд, мы можем легко рассчитать часы, минуты и дни:

var target = 1293836400;    // We got this from MySQL
var now = new Date();       // The current tume

var seconds_remaining = target - (now.getTime() / 1000).toFixed(0);
var minutes_remaining = seconds_remaining / 60;
var hours_remaining = minutes_remaining / 60;
var days_remaining = hours_remaining / 24;

alert(seconds_remaining + ' seconds');     // 8422281 seconds
alert(minutes_remaining + ' minutes');     // 140371.35 minutes
alert(hours_remaining + ' hours');         // 2339.5225 hours
alert(days_remaining + ' days');           // 97.48010416666666 days
2 голосов
/ 25 сентября 2010

Вы можете использовать плагин jquery http://keith -wood.name / countdown.html

Просто передайте дату и время mysql в js как переменную js

синтаксисэто

$(selector).countdown({until: liftoffTime, format: 'HMS'})

js код здесь

 function mysqlTimeStampToDate(timestamp) {
    //function parses mysql datetime string and returns javascript Date object
    //input has to be in this format: 2010-09-24 11:30:12
    var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
    var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
    return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
  }
$('#selector').countdown({until: mysqlTimeStampToDate(<? echo "2010-09-24 11:30:12" ?>), format: 'HMS'});
0 голосов
/ 25 сентября 2010

Существует метод Date.parse () , который может работать.

...