2013-09-26 4 views
1

JSON.stringify()를 사용하여 서버와 날짜를주고받는 웹 사이트가 있습니다. 클라이언트가 코멘트를 쓰는 경우는 서버가 나는 문자열자바 스크립트 날짜() 사이에 시간대가 잘못 되었습니까?

var server_date = new Date("2013-09-21T04:00:00.000Z"); 

이을에서 새 날짜를 작성하는 문자열을 가져옵니다이

"2013-09-21T04:00:00.000Z" 

과 같은 날짜 문자열을 사용하여 서버로 전송됩니다 date 변수는 MongoDB에 저장됩니다. 그러나 클라이언트가 페이지를 다시로드 할 때 클라이언트가받는 날짜 문자열은

"2013-09-21T00:00:00.000Z" 

처럼 보이는 그리고 클라이언트

var client_date = new Date("2013-09-21T00:00:00.000Z"); 

에이 문자열에서 새로운 일을 할 때 날짜 개체가 올바르지 않습니다. 어떻게 든 client_date를 설정할 때 날짜는 2012 년 9 월 21 일이 아닌 9/20/2013으로 설정됩니다. 로컬 컴퓨터에서 서버를 실행할 때 이것은 결코 문제가되지 않았습니다. 현재이 서버는 AWS에서 실행되므로이 ​​날짜가 어떻게 든 엉망이라고 가정하고 있습니까? 그러나 client_date 변수가 시간 - 분 - 초에 관계없이 문자열에 지정된 날짜보다 하루 전에 설정되는 방식을 이해하지 못합니다. 이 문제를 해결하기 위해 날짜를 어떻게 포맷 할 수 있습니까? 감사!

답변

2

Z은 세계 협정시 (UTC) 또는 그리니치 표준시 (GMT)를 의미합니다. 그러므로 그리니치에서 2013-09-21T00:00:00.000Z 일 때까지 9 월 20 일까지 서쪽 끝까지 올라와 고객이있는 곳까지갑니다.

+0

감사! 문제를 해결하기 위해 나는 날짜의 시간 부분을 제거하고 일, 월, 년으로 새 날짜를 만듭니다. 문제를 피할 수있는 방법이 있습니까? – ORL

+0

날짜 문자열이 왜 '2013-09-21T00 : 00 : 00.000Z'처럼 보이나요? 'new Date(). toJSON()'을 사용하고 있습니까? 어쨌든 다른 시간대에 있다면 클라이언트의 시간 일 것입니다. 일정한 시간을 원하고 PHP를 사용한다면'date_default_timezone_set ('America/Los_Angeles')'를 올바른 시간대와 함께 사용하고'$ dt = date ('D M y h : i : s')와 같은 일을하십시오. GMT-0700 (태평양 표준시) ';'은 자바 스크립트 출력처럼 보이게합니다. 물론 정확한 시간대를 사용하십시오. – PHPglue

관련 문제