Таймер обратного отсчета с датой начала в качестве переменной функции - PullRequest
1 голос
/ 04 мая 2011

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

В настоящее время я использую плагин jquery из http://keith -wood.name / countdown.html , но у меня 2 проблемы

1) Я не могу понять, как добавить дату ввода в качестве переменной функции. Я нашел другой вопрос на этом форуме, который был похож - Jquery Countup Timer , но они использовали фиксированную дату, а не переменную дату ввода.

2) Как убедиться, что переменная дата ввода соответствует определенному формату? В настоящее время я пытаюсь прочитать дату ввода из базы данных MySQL, которая ставит метки даты как 2010-06-17 15:12:30, но я не думаю, что это формат даты, который будет читать плагин jquery. Есть ли способ проанализировать эту дату, чтобы форматы совпадали?

Большое спасибо всем, кто может помочь!

Steve

Ответы [ 3 ]

1 голос
/ 04 мая 2011

Вот пример.

http://jsfiddle.net/HXf5v/

Все, что вам нужно сделать, это создать функцию javascript, которая принимает объект Date в качестве параметра

что-то вроде:

function doDateCountUp(date){
  $('#sinceCountDown').countdown({since: date, compact:true, format: 'YOWDHMS', description: ''});    
}

Кроме того, вы также всегда можете создать функцию jquery.

jQuery.fn.doDateCountUp = function(date){
    $(this).countdown({since: date, compact:true, format: 'YOWDHMS', description: ''});  
}

, а затем вы можете вызвать функцию jquery следующим образом:

$('#mydiv').doDateCountUp(new Date())

Что касается форматирования нового объекта Date ().вам следует взглянуть на:

http://www.w3schools.com/jS/js_obj_date.asp

, в котором говорится, что вы можете создать объект даты следующим образом:

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
0 голосов
/ 04 мая 2011

Вот пример взятия даты из текстового поля и использования ее в качестве начальной даты:

отсчет с примером ввода

javascript может создать новую дату, взяв строку в нескольких различных форматах. Вот быстрая ссылка на эти форматы: дата JavaScript

0 голосов
/ 04 мая 2011

Чтобы преобразовать дату mysql в объект даты javascript:

function mysql2jsdate(mysqlDate){
   var parts = mysqlDate.replace(/:/g, '-').replace(' ', '-').split("-");
   parts = $.map(parts, function(part){ return parseInt(part, 10) });
   return new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4], parts[5]);
}

Пример использования:

var jsDate = mysql2jsdate('2010-06-17 15:12:30');

Надеюсь, это поможет достичь вашей цели

...