2016-10-03 4 views
0

시간대 (req.body.TIMEZONE)를 가져오고 날짜/시간 형식을 폼에서 가져옵니다. 시간을 다시 표시하고 Ical 파일을 만들려고 할 때마다 새로운 Date (문자열)를 할 때마다 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

,'새로운 날짜 (req.body.START_TIME)의 결과가 '구현에 의존 표시되는 형식입니다 감안할. 문자열을 가끔씩 파싱 할 때 라이브러리를 사용하는 이유는 무엇입니까? – RobG

+0

@ RobG 나는 항상 동일한 변수를 재 할당하는 것으로 파싱 할 때 순간을 사용하고 있습니다. 그러나 실시간으로 돌아 오지 만 내가 GMT에서 표시 한대로 PST를 표시합니다. –

+0

"항상 순간적으로 사용하고있는 것이 아닙니다". 'new Date (localDateStart.format (dateFormat))'에서 * localDateStart *가 순간 객체라고 가정하면, 문자열을 생성하기 위해 순간을 사용하고, * Date * 구문을 사용하면 매우 나쁜 생각입니다. 대신 localDateStart.clone()을 사용하십시오. [* moment clone *] (http://momentjs.com/docs/#/parsing/moment-clone/)를 참조하십시오. – RobG

답변

0

시작 및 종료 시간은 단지 get the JavaScript Date instance이어야합니다. 한 번 설정하면 시간대 오프셋이 적용됩니다. 날짜는 문자열 연결에서 인스턴스화 할 수 있습니다.

This guys says : 원칙적으로

: 당신이 이 사용자에게 표시 할거야 때까지 항상 저장하고 처리 할 날짜 UTC 시간으로. 사용자가 에서 현지 시간을 읽는 경우 UTC 시간을 가능한 한 가장 빠른 시간으로 변환하고 다시 표시 할 때까지 그대로 유지해야합니다.

Here's an online timestamper I created 빛을 비추는 것이 있습니다.

enter image description here