Ich nehme eine Zeitzone (req.body.TIMEZONE) und ein Datetime Start - Ende von einem Formular. Ich versuche, die Zeit zurück zu zeigen und eine Ical-Datei damit zu machen, aber wann immer ich neues Datum (String) bekomme, bekomme ich die Zeit 7 Stunden voraus? Ich versuche, Moment zu verwenden? Wie kann ich dem Benutzer die lokale Zeit in der ical Datei anzeigen?Datetime Parsing für Ical Dateien
var cal = ical();
cal.domain('gmail.com');
var dateFormat = 'YYYY-DD-MM HH:mm+00:00';
console.log(req.body.START_TIME); //2016-10-03 10:40 am
var startTime = moment(req.body.START_TIME);
var localDateStart = startTime.local();
console.log(localDateStart.format(dateFormat)); // 2016-03-10 10:40+00:00
console.log(new Date(localDateStart.format(dateFormat))); // invalid... wants the same time
var endTime = moment(req.body.END_TIME);
var localDateEnd = endTime.local();
console.log(localDateEnd.format(dateFormat));
var event = cal.createEvent({
start: new Date(localDateStart.format(dateFormat)),
end: new Date(localDateEnd.format(dateFormat)),
summary: req.body.TITLE,
location: req.body.LOCATION,
description: req.body.DESCRIPTION,
organizer: req.body.HOSTED + " <" + req.body.EMAIL + ">",
url: req.body.URL
});
Da das Format angezeigt, das Ergebnis 'new Date (req.body.START_TIME)' Implementierung abhängig ist. Warum verwenden Sie eine Bibliothek, um die Zeichenfolge manchmal zu analysieren, andere nicht? – RobG
@RobG Ich verwende immer Moment, da ich es analysiere und die gleiche Variable neu zuordene. Aber die Echtzeit kommt zurück, aber wenn ich es zeige, wird es in GMT angezeigt, wo ich PST möchte. –
Sie sind nicht "immer mit Moment", z. in 'new Date (localDateStart.format (dateFormat))' und unter der Annahme * localDateStart * ist ein Moment-Objekt, Sie verwenden Moment, um eine Zeichenkette zu generieren, und lassen sie dann * Date * analysieren, was eine sehr schlechte Idee ist. Verwenden Sie stattdessen 'localDateStart.clone()', siehe [* moment clone *] (http://momentjs.com/docs/#/parsing/moment-clone/). – RobG