MongoDB 저장 시간 시차 문제 해결 방법

1930 단어 mongodb기억시차
머리말
MongoDB 는 시간 유형 데 이 터 를 저장 할 때 UTC 시간 으로 먼저 변환 한 다음 데이터베이스 에 저장 하 는데,우리 가 저장 한 시간 을 꺼 내 면 시차 문제 가 발생 한다.
예 를 들 어 우리 가 사용 하 는 베 이 징 시간 에 읽 은 수 치 는 현재 시간 보다 8 시간 이 적은 것 을 볼 수 있 습 니 다.우 리 는 읽 을 때마다 시간 을 따로 처리 해 야 합 니까?이것 은 비교적 번 거 롭 습 니 다.사실은 우 리 는 저장 할 때 해당 하 는 처 리 를 할 수 있 고 4.567914.와 4.567914.함수 만 사용 하면 된다.
이해 해 야 할 개념:
그리니치 시간
그리니치 자오선 의 지방 시 또는 영시 구(중시 구)의 지역 을 그리니치 시간 이 라 고도 부 르 고 세계 시 라 고도 부른다.더 자세 한 개념 은 말 하지 않 겠 습 니 다.여 기 는 필요 없습니다.)예 를 들 어 우리 중국 은 동 팔 구 이 고 베 이 징 시간 은(GMT+08:00)
로 컬 과 그리니치 시간의 시차 획득:new Date().getTimezone Offset(),단 위 는 분 입 니 다.
그리니치 시간 을 이미 알 고 있 으 며,현지의 정확 한 시간 으로 환산 하 다.
현지 시간=그리니치 시간-시차
로 컬 시간 을 알 고 있 습 니 다.그리니치 시간 으로 환산 합 니 다.
그리니치 시간=로 컬 시간+시차
로 컬 시간 을 알 고 있 으 며,다른 시간 대 를 환산 합 니 다.
시간 구간 의 차 이 는 시간 단위 이기 때문이다.그래서 0 시구 의 시간 을 계산 한 후에 그 에 상응하는 시간 을 빼 거나 더 하면 된다(동 N 구 변+N 시간,서 N 구 변-N 시간).계산 하기 편리 하도록 동 N 구 는 정 수 를 기록 하고 서 N 구 는 마이너스 로 기록 합 니 다.즉,:
대상 시간 대 시간=로 컬 시간+시차+시간 대 간격
getTimezone Offset 함수:이 지역 의 시차(현지 시간 과 GMT 그리니치 표준 시간의 지역 시차)를 되 돌려 줍 니 다.단 위 는 분 입 니 다.

<script>
 //       
 var d = new Date();
 var tz = d.getTimezoneOffset();
 console.log(tz); // -480
</script>
함수:ISO 표준 을 사용 하여 Date 대상 을 문자열 로 변환 합 니 다.
이 표준 은 ISO-8601 이 라 고 부 르 며,형식 은 YYY-MM-DDTHH:mm:ss.sssZ 이다.
문법

Date.toISOString()
반환 값
유형
묘사 하 다.
String
ISO 표준 형식의 시간 과 날짜
패 키 징 시간 변환 함수

localDate(v) {
 const d = new Date(v || Date.now());
 d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
 return d.toISOString();
},
우 리 는 시간 을 저장 할 때getTimezoneOffset()이 함 수 를 호출 하면 됩 니 다.당신 이 어느 시간 대 에 있 든 결 과 는 현지 시간 과 같 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기