2017-02-17 2 views
0

날짜 저장 : 2017 년 2 월 16 일 5PM HST.다른 시간대에 날짜/시간을 저장하는 방법

데이터베이스 (구문 분석)는 JS 날짜 만 허용합니다. 그리고 내 시스템 시간대는 IST입니다. JS Date에 다른 시간대에 저장할 수있는 기능이 없습니다.

이를 극복하기 위해 세 가지 변수를 저장합니다. 날짜 (계산, 계산은 아래에서 설명 함), 시간대 오프셋, 시간대

날짜는 moment.tz(DateObject, Timezone)을 사용하여 변환됩니다.

그러나 toDate() 함수를 호출하면 IST로 되돌릴 수 있습니다.

자세히 살펴보면 IST에서 변환 된 datetime이있는 것 같습니다. 자세한 내용은 _d 키가 모먼트 개체에 있음을 발견했습니다.

그러나 나는 그것을 작동시키지 못하는 것 같습니다.

힌트가 도움이 될 것입니다. 이 같은

+1

"다른 시간대에 저장 하시겠습니까?" 시간대는 프레젠테이션 계층의 관심사입니다. '01 : 00 + 00 : 00'과'02 : 00-01 : 00'은 동일한 _time_이며 다르게 표현됩니다. 특정 시점은 큰 정수 (_timestamp_)를 사용하여 표시되며이 시간 소인은 저장해야하는 것입니다. 이 타임 스탬프를로드하고 다시 사용하려면 : 선택한 영역의 관점에서 _ 표시 할 수 있습니다. – Birchlabs

+0

코딩 한 코드 스 니펫을 게시 할 수 있습니까? – Sekar

+0

@Birchlabs 구문 분석 서버는 JS 날짜 만 허용하므로 타임 스탬프를 저장할 수 없습니다. "다른 시간대로 저장", 이는 내가 말한대로 날짜를 저장해야 할 수도 있음을 의미합니다 (예 : HST 또는 PST). 더 넓은 범위에서 이는 5 단계 IST에 저장되지 않으며 사용자에게 시간대에 따라 날짜를 표시하지 않는다는 것을 의미합니다. 5 HST를 보관해야합니다. 이해가된다면 알려주세요. – ankitjain11

답변

2

"다른 시간대에 저장 하시겠습니까?" 시간대는 프레젠테이션 계층의 관심사입니다. 01:00+00:0002:00-01:00은 같은 시간이며 다르게 표시됩니다. 특정 시점은 큰 정수 (시간 소인)를 사용하여 표시되며이 시간 소인은 저장해야하는 것입니다.

이 타임 스탬프를로드하고 다시 사용하려면 : 선택한 모든 영역의 관점에서 제시 할 수 있습니다.

//-- parsing the user input... 

// parse HST (Honolulu Standard Time) date-time 
var inputTime = moment.tz("February 16th, 2017 5PM", "MMMM Do, YYYY hA", "Pacific/Honolulu"); 

// in case you want to double-check that it parsed correctly 
var inputTimePrettyPrinted = inputTime.format(); // "2017-02-16T17:00:00-10:00" 

// grab timestamp 
var timestamp = +inputTime; 

//-- presenting the stored timestamp in Indian Standard Time... 

// install a timezone definition for Indian Standard Time 
moment.tz.add("Asia/Calcutta|HMT BURT IST IST|-5R.k -6u -5u -6u||-18LFR.k 1unn.k HB0 7zX0"); 
moment.tz.link("Asia/Calcutta|Asia/Kolkata"); 

var timePresentedInIndianTime = moment(timestamp).tz("Asia/Calcutta"); 

var indianTimePrettyPrinted = timePresentedInIndianTime.format(); // "2017-02-17T08:30:00+05:30" 
0

시도 뭔가 : 당신은 당신의 필요에 따라 변경할 수 있습니다

var UTC = new Date(); 
var UTC = UTC.getTime() // Get UTC Timestamp 

var IST = new Date(date); // Clone UTC Timestamp 
IST.setHours(IST.getHours() + 5); // set Hours to 5 hours later 
IST.setMinutes(IST.getMinutes() + 30); // set Minutes to be 30 minutes later 

var EST = new Date(date); // Clone date 
EST.setHours(EST.getHours() - 4); // set EST to be 4 hour earlier 

.

0

당신은 여기에 대한 답에 대한 jsfiddle link

확인을 console.log입니다 HST

var now = new Date(); 
moment.tz.add('HST|HST|a0|0|'); 
console.clear(); 
var converted = moment(now).tz("HST").format(); 
console.log(now); 

console.log(converted); 

에 추가 할 순간 TZ를 사용해야합니다.

Fri Feb 17 2017 18:24:49 GMT+0530 (India Standard Time) //IST time 
2017-02-17T02:54:49-10:00 // HST Time 
관련 문제