2016-08-09 217 views
1

ich aus diesem Beispiel zu lernen, ich versuche:Vollkalender „Zeitzone Demo“ Beispiel

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

Bitte beachten Sie auch einen Rechtsklick auf die Webseite der Seite Quelle anzuzeigen.

Der einzige Teil, der nicht jetzt funktioniert wie folgt:

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

Es wird versucht, die Kalenderzeitanzeige bei der Auswahl der verschiedenen Zeitzonen auf Basis zu ändern.

Ich bin kein Experte in Javascript und habe versucht, FullCalendar Erklärungen dazu aber ohne Glück zu finden.

Meine Frage:

1) Was kann "this.value" möglicherweise bedeuten? "|| falsch"?

2) Im Backend meiner Webanwendung verwende ich Java Web Servlet mit Hibernate 3.6. Für die Zeiteingabe (Start- und Endzeit) verwende ich LocalDateTime aus Java 8 und speichere es als UTC-Zeitstempel in MySQL. Nicht sicher, ob dies die beste Vorgehensweise für einen Kalender-basierten Scheduler ist?

3) Derzeit habe ich keine timezoneId an den in der Datenbank gespeicherten Zeitstempel angehängt. Aber ich habe eine Liste erstellt, aus der der Benutzer auswählen kann, wie es das FullCalendar-Beispiel getan hat. Gibt es einen Vorschlag, wie Sie eine timezoneId für diese Kalenderanzeige über verschiedene Zeitzonen hinweg am besten speichern und später verwenden können?

Für jetzt denke ich, dass das Versuchen, FullCalendar-Beispiel total nachzuahmen, nicht sehr praktisch ist, weil meine Datenbank von ihren anders ist. Ich bin offen für alle guten Vorschläge, wie man die aktuelle Zeitzone des Benutzers aus seiner Auswahl bezieht, speichert sie in der Datenbank und zeigt später den richtigen Zeitwert basierend auf einer Zeitzone an, die der Benutzer auf seiner Kalenderansichtsseite auswählt.

Antwort

2

Wenn Sie die Auswahl der Zeitzone überprüfen, können Sie sehen, dass jede Option einen Wert hat. this.value bedeutet, dass die Funktion "On Change" den Wert der ausgewählten Option zur Zuweisung als Zeitzone übernimmt. Was die Speicherung Ihrer Zeiten betrifft, sollten sie wie Ihre UTC-Zeitstempel gespeichert werden. Zum Abrufen der Zeitzone benutze ich jstz, um die Zeitzone des Benutzers zu erhalten, es ist so einfach wie diese zwei Zeilen.

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

Das ist großartig, weil Sie den Benutzer nicht nach seiner Zeitzone fragen müssen. Dann, wenn ich meine Datenbank für Veranstaltungen abfragen gebe ich in der Zeitzone

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

und Verwendung von PHP von utc an den Benutzer lokalen Zeitzone zu konvertieren und die json codierten Ereignisse zurück.