有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript完整日历“时区演示”示例

我试图从这个例子中学习:

http://fullcalendar.io/js/fullcalendar-2.9.1/demos/timezones.html

还请右键单击网页以查看页面源

目前唯一不起作用的部分如下:

        // when the timezone selector changes, dynamically change the calendar option
        $('#timezone-selector').on('change', function() {
            $('#calendar').fullCalendar('option', 'timezone', this.value || false);
        });

它正试图根据不同时区的选择更改日历时间显示

我不是Javascript方面的专家,曾试图找到FullCalendar对此的解释,但运气不佳

我的问题:

1)“this.value”可能是什么意思?“错”

2)在web应用程序的后端,我使用带有hibernate 3.6的Java web servlet。对于时间输入(开始时间和结束时间),我使用Java8中的LocalDateTime,并将其作为UTC时间戳存储在MySQL中。不确定这是否是基于日历的计划程序的最佳实践

3)目前,我还没有将timezoneId附加到存储在数据库中的时间戳。但我已经创建了一个列表供用户选择,正如FullCalendar示例所做的那样。对于在不同时区之间存储和稍后使用timezoneId进行日历显示的最佳方式有何建议

现在,我认为尝试完全模仿FullCalendar的示例并不实用,因为我的数据库与他们的不同。对于如何从用户的选择中获取当前时区,将其存储在数据库中,然后根据用户在其日历视图页面上选择的任何时区显示适当的时间值,我愿意接受任何好的建议


共 (1) 个答案

  1. # 1 楼答案

    如果检查时区选择,可以看到每个选项都有一个值this.value表示on change函数将获取所选选项的值,以指定为时区。至于存储时间,它们应该像您现在这样存储为UTC时间戳。为了检索时区,我使用jstz来获取用户的时区,其简单程度如下两行

    var tz = jstz.determine();
    var timezone = tz.name();
    

    这很好,因为你不必询问用户的时区。然后,当我在数据库中查询我在时区中传递的事件时

    events: {
        url: "calendarManager.php?request=get&timezone=" + timezone + "&userid=" + userID
    },
    

    并使用php将utc转换为用户本地时区,并返回json编码的事件