[javascript] UTC 날짜 시간을 현지 날짜 시간으로 변환
서버에서 다음 형식의 datetime 변수를 얻습니다 .UTC 6/29/2011 4:52:48 PM
시간입니다. JavaScript를 사용하여 현재 사용자의 브라우저 시간으로 변환하고 싶습니다.
JavaScript 또는 jQuery를 사용하여 어떻게 수행 할 수 있습니까?
답변
자바 스크립트에서 날짜로 변환하기 전에 문자열에 ‘UTC’를 추가하십시오.
var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
답변
필자의 관점에서 서버는 일반적으로 표준화 된 ISO 8601 형식으로 날짜 시간을 반환해야 합니다 .
여기에 더 많은 정보가 있습니다 :
이 경우 서버는 '2011-06-29T16:52:48.000Z'
JS Date 객체로 직접 피드를 반환 합니다.
var utcDate = '2011-06-29T16:52:48.000Z'; // ISO-8601 formatted date returned from server
var localDate = new Date(utcDate);
은 localDate
내 경우에는 2 시간 후에 (DK 시간)이 될 것입니다 올바른 현지 시간에있을 것입니다.
당신은 정말 한 서버에서 기대하는 어떤 형식과 일치로, 모두에게 단지 물건을 복잡하게이 구문 분석 할 필요가 없습니다.
답변
이것은 보편적 인 해결책입니다.
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
용법:
var date = convertUTCDateToLocalDate(new Date(date_string_you_received));
클라이언트 로컬 설정에 따라 날짜를 표시하십시오.
date.toLocaleString();
답변
클라이언트의 (UTC) 오프셋 (분)을 가져와야합니다.
var offset = new Date().getTimezoneOffset();
그런 다음 서버에서 얻은 시간에 해당하는 덧셈 또는 뺄셈을 수행하십시오.
도움이 되었기를 바랍니다.
답변
나에게 위의 해결책은 효과가 없었다.
IE를 사용하면 UTC 날짜 / 시간을 로컬로 변환하는 것이 까다 롭지 않습니다. 나에게 웹 API의 날짜 시간은 '2018-02-15T05:37:26.007'
현지 시간대별로 변환하고 싶으므로 JavaScript에서 아래 코드를 사용했습니다.
var createdDateTime = new Date('2018-02-15T05:37:26.007' + 'Z');
답변
이 기능을 머리에 넣으십시오.
<script type="text/javascript">
function localize(t)
{
var d=new Date(t+" UTC");
document.write(d.toString());
}
</script>
그런 다음 페이지 본문에서 각 날짜에 대해 다음을 생성하십시오.
<script type="text/javascript">localize("6/29/2011 4:52:48 PM");</script>
GMT 및 시간대를 제거하려면 다음 행을 변경하십시오.
document.write(d.toString().replace(/GMT.*/g,""));
답변
이것은 나를 위해 작동합니다 :
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);
return newDate;
}