0

通过定义一个事件源,我已经让我的 FullCalendar 提要运行良好。

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 函数不会为“开始”和“结束”传递时间戳,因此数据更难处理。如何将时间转换为时间戳?

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

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

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

4

1 回答 1

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)
        }
    });
}

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

于 2013-03-23T20:20:34.353 回答