将日期传递给JSON Feed

时间:2011-11-23 16:57:18

标签: fullcalendar

我在vb.net设置中使用fullCalendar。我使用aspx页面中包含的JSON提要将数据传递到日历,如下所示:

events: "JSONcalendarFeed.aspx"

我想知道是否有办法将fullCalendar中当前选定的月份传递给生成JSON Feed的页面,以便我可以提取该月的数据。此外,每当日历中的一年发生变化时,我都需要过新的一年。

谢谢!

2 个答案:

答案 0 :(得分:2)

我非常确定fullCalendar实际上将开始和结束时间作为参数发送到您的页面。

来自events as jsonfeed

示例说:/ myfeed.php?start = 1262332800& end = 1265011200 因此,您可能应该阅读这两个参数并从1970年1月1日起将其从(而不是在fullCalendar中的ms!)中转换出来

答案 1 :(得分:1)

PAGE

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="diaryFeed.aspx.vb" Inherits="ClubSites.diaryFeed" %>
<%  Response.Write(respondBack)%>

代码背后

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Request.QueryString.ToString <> "" Then
            'I don't understand why fullCalendar uses a Unix timestamp.. but use these queries if you use UNIX timestamp, common in PHP apparently

            If IsNothing(Request.QueryString("start")) Then
                _startDate = Date.Now.AddYears(-1)
                _endDate = Date.Now.AddYears(1)
            Else
                _startDate = CDateFromUNIX(Request.QueryString("start"))
                _endDate = CDateFromUNIX(Request.QueryString("end"))

            End If
            Try
                If Not Request.QueryString("Timestart").Length = 0 And Not Request.QueryString("TimeEnd").Length = 0 Then
                    _startDate = CDate(Request.QueryString("Timestart"))
                    _endDate = CDate(Request.QueryString("TimeEnd"))
                End If
            Catch ex As Exception

            End Try
            'End If

 respondBack = JsonConvert.SerializeObject([mycustom function that generates a data table], New Newtonsoft.Json.Converters.IsoDateTimeConverter())


end sub

我使用json .net将我的传出数据转换为json,以便日记可以理解它

和一个将Unix时间戳转换为.NET的辅助函数

 Function CDateFromUNIX(ByVal timestamp As Double) As DateTime
        Dim origin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0)
        Return origin.AddSeconds(timestamp)
    End Function