从FullCalendar事件对象获取简单的时间戳

时间:2013-03-23 14:50:19

标签: javascript fullcalendar

我已经通过定义eventSource使我的FullCalendar Feed运行良好。

eventSources: [
{
    events: function(start, end, callback) {
        $.ajax({
            url: svcURL,
            dataType: 'json',
            type: 'POST',
            data: {
                start: Math.round(start.getTime() / 1000),
                end: Math.round(end.getTime() / 1000),
                sid: %sid%,
                csrf_test_name: csrf
            },
            success: function(json) {
                callback(json);
            }
        });
    }
}

通过复制和粘贴示例,我的时间戳完美无缺。但是,我还有另一个ajax函数,我也想使用时间戳,但是我没有时间戳,而是获得了数据的文本版本:

eventClick: function(event) {
    if (confirm('Quer mesmo marcar este serviço?')){
        markit(event);
    }
    return false;
}

eventClick函数将事件对象传递给我的“markit”函数:

function markit(obj){
    $.ajax({
        url: msvURL,
        dataType: 'json',
        type: 'POST',
        data: {
            start: obj.start,
            end: obj.end,
            sid: obj.sid,
            uid: obj.uid,
            aid: obj.aid,
            csrf_test_name: csrf
        },
        success: function(json) {
            alert('Got it marked!')
        }
    });
}

正如我所说,markit函数没有传递'start'和'end'的时间戳,因此数据更难处理。如何将时间转换为时间戳?

更新:正在发送的文本版本如下:

Tue Mar 19 2013 09:30:00 GMT-0300 (Hora oficial do Brasil)

虽然我可以用PHP解析它,但如果我可以使用时间戳,生活会更简单。

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但是我将开始值和结束值更改为以下内容并获得我正在寻找的时间戳:

function markit(obj){
    $.ajax({
        url: msvURL,
        dataType: 'json',
        type: 'POST',
        data: {
            start: Math.round(obj.start / 1000),
            end: Math.round(obj.end / 1000),
            sid: obj.sid,
            uid: obj.uid,
            aid: obj.aid,
            csrf_test_name: csrf
        },
        success: function(json) {
            obj.aid = json;
            alert('Got it marked! AID: ' + json)
        }
    });
}

对我来说,如何在不是数值的东西上使用数学函数是没有意义的。如果有人可以发表评论来解释,我会很感激。