【问题标题】:pass date to JSON feed将日期传递给 JSON 提要
【发布时间】:2011-11-23 16:57:17
【问题描述】:

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

events: "JSONcalendarFeed.aspx"

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

谢谢!

【问题讨论】:

    标签: fullcalendar


    【解决方案1】:

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

    来自events as jsonfeed 的示例说:/myfeed.php?start=1262332800&end=1265011200 因此,您可能应该只阅读这两个参数并将它们从 1970 年 1 月 1 日以来的 (在 fullCalendar 中不是毫秒!)

    【讨论】:

    • 日历是否会自动获取开始日期和结束日期(如果有)? -谢谢
    • 对于 fullcalendar v1 来说确实如此。从 v2 开始,它在任何地方都使用 utf 日期和时间。顺便说一句,我正在寻找如何回到 unix systime
    【解决方案2】:

    页面

    <%@ 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
    

    【讨论】:

    • 这不是每次用户去上/下个月、一周或一天时都需要回发吗?
    • 我使用 Ajax 请求..(回发是如此 1990 年)但通常是的 - 如果您不需要实时实时最新数据,则使用 fullCalendars 内部缓存功能。但您可以将其关闭,以便它始终请求数据。
    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多