Ical文件的日期时间解析

时间:2016-10-03 06:48:53

标签: javascript node.js date datetime icalendar

我正在接受时区(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
            });

1 个答案:

答案 0 :(得分:0)

您只需要get the JavaScript Date instance开始和结束时间。完成后,从那里应用时区偏移。可以从字符串连接中实例化日期。

This guys says

  

作为一项规则:始终以UTC时间的形式存储和处理日期,直到您完成为止   将它们显示给用户。如果您正在阅读当地时间   用户,您需要最早将它们转换为UTC时间   可能的时刻,并保持它们,直到你再次显示它们。

Here's an online timestamper I created可能会有所帮助。

enter image description here