1

我正在关注如下所示的 jQuery 日历示例,并尝试从我的 SQL 数据库加载日期而不是示例硬编码值,不确定什么是最好的方法,但我正在使用 Ajax 发布到我的 Web 方法并获取数据。数据库中的数据将被加载到数据表中,但问题是我不确定我的 SQL 中的数据应该以什么格式存储,这样当我检索它并将其返回给我的 Ajax 调用时,它可以替换“new Date( y, m, 2)”。

请协助。谢谢。

<script type='text/javascript'>

    $(document).ready(function () {

        var date = new Date();
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();

        var sDate;
        $.ajax({
            type: "POST",
            url: "/WebServices/Services.asmx/GetString",
            contentType: "application/json; charset=utf-8",
            async: false,
            dataType: "json",
            success: function (result) { sDate = result.d; }
        });
        alert(sDate);

        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,basicWeek,basicDay'
            },
            editable: true,
            events: [
                {
                    title: 'Click for Google',
                    start: new Date(y, m, 2), // Hardcoded date
                    url: 'http://google.com/'
                }
            ]
        });
    });

</script>

      [WebMethod]
        public string GetString()
        { // Dump data from SQL database into DataTable
            DataTable table = new DataTable();
            table.Columns.Add("Date", typeof(DateTime));
            table.Rows.Add(DateTime.Now);
            return table;
        }
4

1 回答 1

0

Date()构造函数可以采用许多不同的参数。毫秒相当稳定,但如果您的数据库存储 Unix 时间戳,请记住在调用 Date 构造函数之前将其转换为毫秒(将其乘以 1000)。

旁注:您的代码将无法按预期工作,因为sDate在 ajax 回调完成之前不可用。您需要执行以下操作:

$.ajax({
    type: "POST",
    url: "/WebServices/Services.asmx/GetString",
    contentType: "application/json; charset=utf-8",
    async: false,
    dataType: "json",
    success: onSuccess
});

function onSuccess(result) {
    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
        },
        editable: true,
        events: [
            {
                title: 'Click for Google',
                start: new Date( result.d*1000 ), // assuming UNIX time
                url: 'http://google.com/'
            }
        ]
    });
}
于 2012-09-10T09:58:31.770 回答