Ошибка кодирования конвертации метки времени в jquery mySQL - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть приложение, в котором мне нужно преобразовать отметку даты и времени mySQL в текущее системное время. Я использую отсчет keith wood jquery, который установлен правильно и работает ... но я не могу получить код для преобразования моей временной метки, работающей для спасения моей жизни.

Я нашел этот фрагмент кода где-то для преобразования метки времени, но в консоли Firefox я получаю сообщение об ошибке: Я не эксперт в js-кодировании, поэтому уверен, что это что-то очевидное. Любая помощь, которую кто-либо может оказать, будет высоко ценится. Это начинает сводить меня с ума.

Это приложение для рельсов.

$(document).ready(function mysqlTimeStampToDate(timestamp) {
    //function parses mysql datetime string and returns javascript Date object
    //input has to be in this format: 2007-06-05 15:26:02
    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]);
});

$(document).ready(function () {
    $('textLayout').countdown({until: mysqlTimeStampToDate("#work_order_hard_completion_datetime"), layout: '{dn}d {hnn}{sep}{mnn}{sep}{snn}'});
});

1 Ответ

0 голосов
/ 17 февраля 2012

Когда вы делаете это:

$(document).ready(function mysqlTimeStampToDate(timestamp) {
    // ...
});

Вы сообщаете jQuery, чтобы запустить вашу функцию mysqlTimeStampToDate, когда документ готов, вы не определяете глобальную функцию mysqlTimeStampToDate для дальнейшего использования.Затем, когда jQuery запустит вашу функцию, она будет выполнена с объектом jQuery в качестве аргумента , поэтому timestamp на самом деле $ в jQuery *, когда ваша функция запущена, и нет метода replace для $.

Запустите это с открытой консолью, и вы поймете, что я имею в виду: http://jsfiddle.net/ambiguous/eUNS3/

Я думаю, вы просто хотите сказать это:

function mysqlTimeStampToDate(timestamp) {
    //function parses mysql datetime string and returns javascript Date object
    //input has to be in this format: 2007-06-05 15:26:02
    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]);
}

$(document).ready(function () {
    $('textLayout').countdown({until: mysqlTimeStampToDate("#work_order_hard_completion_datetime"), layout: '{dn}d {hnn}{sep}{mnn}{sep}{snn}'});
});
...