특정 시간의 시간 가져 오기
이 질문에 이미 답변이 있습니다.
자바 스크립트 Date
클래스를 사용하고 있으며 getDate()
메서드를 사용하여 현재 날짜를 얻으려고합니다 . 그러나 분명히 시스템 날짜 및 시간을로드하고 있습니다. 인도에서 코드를 실행하고 같은 방법으로 영국의 날짜와 시간을 보내고 싶습니다. 어떻게 할 수 있습니까?
UTC는 알고 계시를 전달하고 다음 함수를 사용하여 시간을 얻을 수 있습니다.
function calcTime(city, offset) {
// create Date object for current location
var d = new Date();
// convert to msec
// subtract local time zone offset
// get UTC time in msec
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
var nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time for city"+ city +" is "+ nd.toLocaleString();
}
alert(calcTime('Bombay', '+5.5'));
출처 : 현지 시간을 다른 시간으로 변환
사용할 수 있습니다 .Intl.DateTimeFormat
var options = {
timeZone: 'Europe/London',
year: 'numeric', month: 'numeric', day: 'numeric',
hour: 'numeric', minute: 'numeric', second: 'numeric',
},
formatter = new Intl.DateTimeFormat([], options)
formatter.format(new Date())
또는 대량 사용 대신 한 번만 서식을 지정하는 경우 .Date.prototype.toLocaleDateString()
(new Date()).toLocaleString([], options)
불행하게도 브라우저가하지 않도록 , UTC 이외의 존재를 이해하는 데 필요한 try
이 경우 대체 아웃이 블록 그림은, 예를 들어 서버를 가져옵니다.
이를 수행하는 가장 좋은 방법은 다음과 같이 getLocaleString을 사용하는 것입니다.
날짜 개체를 만듭니다.
date = new Date(0)
베를린에있는 경우 다음 노드로 변환해야합니다.
1970 년 1 월 1 일 목요일 01:00:00 GMT + 0100 (CET)
아테네에서 시간 확인 :
date.toLocaleString('de-DE', {hour: '2-digit', hour12: false, timeZone: 'Europe/Athens' })
'02'
상하이에서 근무 시간 :
date.toLocaleString('de-DE', {hour: '2-digit', hour12: false, timeZone: 'Asia/Shanghai' })
'08'
이것은 ##를 얻는 올바른 방법입니다.
function getTime(offset)
{
var d = new Date();
localTime = d.getTime();
localOffset = d.getTimezoneOffset() * 60000;
// obtain UTC time in msec
utc = localTime + localOffset;
// create new Date object for different city
// using supplied offset
var nd = new Date(utc + (3600000*offset));
//nd = 3600000 + nd;
utc = new Date(utc);
// return time as a string
$("#local").html(nd.toLocaleString());
$("#utc").html(utc.toLocaleString());
}
당신은 사용할 수 있습니다 및 관련 방법은 UTC 시간을 기반으로 한 번에 액세스 비용, 다음 변환합니다.getUTCDate()
getUTC...()
원한다면 유닉스 시대 이후 UTC로 초를 반환 하는를 사용할 수 있지만 훨씬 더 관련 될 것입니다 .valueOf()
Date.getTimezoneOffset ()
getTimezoneOffset () 메서드는 그리니치 표준시 (GMT)와 현지 시간 간의 시차를 분 단위로 반환합니다.
예를 들어 시간대가 GMT + 2 인 경우 -120이 반환됩니다.
참고 :이 메서드는 항상 Date 개체와 함께 사용됩니다.
var d = new Date()
var gmtHours = -d.getTimezoneOffset()/60;
document.write("The local time zone is: GMT " + gmtHours);
//output:The local time zone is: GMT 11
정확한 날짜와 시간이 정말 중요하다면; 시간을 반환하는 서비스를 서버 (물론 UTC로 실행)에 두는 것이 가장 좋습니다. 그런 다음 클라이언트에서 새 날짜를 만들고 값을 비교하고 필요한 경우 모든 날짜를 서버 시간의 오프셋으로 조정할 수 있습니다.
왜 이러나요? 버그 보고서를 받은 지 이틀 후에 메일로 발송 된 것을 알기 전까지는 서버 로그에서 오류 메시지를 찾을 수 없어 재현하기 어려운 버그 보고서가 있었습니다. 당신은 할 수 있습니다 아마 UTC의 타임 스탬프를 전송되는 올바르게 핸들 시간대 변환 브라우저를 신뢰하지만 당신은 분명히 자신의 시스템 시계가 올바르게 설정하도록 사용자를 신뢰할 수 없습니다. (사용자의 시간대도 잘못 설정되어 있으면 현재 서버 시간을 "현지"시간으로 인쇄하는 것 외에는 실제로 해결책이 없습니다.)
.getTimezoneOffset()
방법은 작동합니다. 이것은 귀하의 시간대와 GMT 사이의 시간을 가져옵니다. 그런 다음 원하는대로 계산할 수 있습니다.
클라이언트 측의 짧은 대답 : 아니요, 서버 측에서 가져와야합니다.
참조 URL : https://stackoverflow.com/questions/8207655/get-time-of-specific-timezone
'ProgramingTip' 카테고리의 다른 글
웹에 저장 색상이 여전히 관련이 있습니까? (0) | 2020.12.15 |
---|---|
New Intent ()는 Android에서 새 인스턴스를 시작합니다. launchMode =“singleTop” (0) | 2020.12.15 |
Symfony2 / Symfony3에서 FOSUserBundle을 사용하여 사용자 이름 필드를 이메일로 제거 / 척 (0) | 2020.12.15 |
ImageMagick 사용 대리자 없음 (0) | 2020.12.15 |
xcode에서 메서드 드롭 다운을 여는 바로 가기 (0) | 2020.12.15 |