我正在接受时区(req.body.TIMEZONE)和日期时间从表单开始。我试图显示时间并用它制作一个Ical文件然而每当我做新的日期(字符串)我得到7小时的时间?我想用时机?如何在ical文件中向用户显示本地时间?
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
});
答案 0 :(得分:0)
您只需要get the JavaScript Date instance开始和结束时间。完成后,从那里应用时区偏移。可以从字符串连接中实例化日期。
作为一项规则:始终以UTC时间的形式存储和处理日期,直到您完成为止 将它们显示给用户。如果您正在阅读当地时间 用户,您需要最早将它们转换为UTC时间 可能的时刻,并保持它们,直到你再次显示它们。