Мне нужно передать дату / время динамически в виджет JQuery.Каков наилучший способ сделать это? - PullRequest
0 голосов
/ 23 сентября 2011

Я пишу скрипт, который использует виджет datetimepicker, который является расширением виджета datepicker в JQuery. Виджет применяется динамически к сгенерированному списку событий через этот код:

$(function() {
    $( 'input[id^="event_"]' ).datetimepicker({
        stepMinute: 15  
    });
});

Дата / время могут быть установлены с помощью следующей опции:

// where x is the dynamic ID of the row
var dtpicker = $( '#event_x' );
dtpicker.datetimepicker('setDate', (new Date()) );

Вот как генерируются строки:

if($results != false){
    foreach($results as $event){
        echo "<tr>\n";
        echo "<td><input type=\"text\" id=\"" . $event['id'] . "\" value=\"" . $event['name'] . "\" /></td>\n";
        echo "<td><input type=\"text\" id=\"event_" . $event['id'] . "\" value=\"" . $event['date'] . "\" /></td>\n";
        echo "<td>Save stuff here?</td>\n";
        echo "</tr>\n";
    }
    unset($event);
}else{
    echo "<div>Error getting events</div>\n";
}

По сути, мне нужно пройтись по сгенерированным строкам, вытащить дату из соответствующего поля, преобразовать ее из строки в Date() и поместить ее в опцию.

Думаю, я собираюсь использовать функцию .click() для достижения этой цели. Пока это то, что я придумал:

$( 'input[id^="event_"]' ).click(function() {
    //input format: 2011-09-15 20:30:00
    var mainSplit = $(this).val().split(" ");
    var dateSplit = mainSplit[0].split("-");
    var timeSplit = mainSplit[1].split(":");

    //alert($(this).val());
});

Любые указатели / предложения / решения приветствуются!

1 Ответ

1 голос
/ 23 сентября 2011

Вы можете просто передать строку даты в конструктор даты JavaScript, и она создаст для вас дату:

var theDate = new Date('2011-09-15 20:30:00'); // returns a date object
...