문제 # 1
주요 문제는 전환 단계는 strtotime
를 사용하여입니다. PHP는 시간대와 시간대 (아마 당신의 시간대를 사용)의 관계를 추측하려하지만, 상황에 따라 추측하기에 더 많은 것을 알 필요가 있습니다. 시간 문자열이 GMT (그리니치 표준시)로 표시된다는 것을 명시 적으로 PHP에 알려줌으로써이를 수행 할 수 있습니다.
데이터베이스의 형식은 YYYY-MM-DD HH : MM : SS 형식이므로 strtotime
호출 중에 데이터베이스에 필요한 GMT 식별자를 연결할 수 있습니다.
<pre>
<?php
$time = strtotime('2013-07-19 10:12:56' . ' GMT');
echo("Converting to UNIX Time: $time\n");
echo("Converting to JS Time: ");
echo ($time*1000);
?>
</pre>
은 UNIX 시간으로 변환 :
1,374,228,776는 JS 시간으로 변환 : 1,374,228,776,000
를 에포크 변환 결과로 얻어진 UNIX 시간 붙여 예
$time = strtotime('2013-07-19 10:12:56' . ' GMT');
GMT: Fri, 19 Jul 2013 10:12:56 GMT
에서 올바르게
문제 # 2
로 위의 PHP 코드를 변경하는 것은 필요하지만 완전히 당신을 위해 작동하지 않기 때문에, 나는 당신이 한 번 더 문제가 일어나고있는 것을 볼 수 있습니다. (Sebastian이 도움을 주려고했습니다.)
Sebastian의 설명에 을 추가하면 JavaScript에서 차트 또는 차트 개체를 만들기 전에 전역 설정을 구성해야한다는 것입니다. 그렇지 않으면 차트의 출력에 영향을 미치지 않습니다. 따라서 앞에 코드가 존재하는지 확인하기 위해 다음 구성을 적용해야합니다.
Highcharts.setOptions({
global: {
useUTC: false
}
});
(이 구성을 사용하지 않는 경우, 차트는 여전히 잘 작동하지만 날짜와 시간 대신 차트를 보는 각 사용자의 로컬 시간대의 그리니치 표준시를 기준으로 표시됩니다.)
를
토론 (없는 토론을 미워하는 사람들을 위해 나중에 배치 그것을 읽기) :
나는 당신이 당신의 PHP 코드를 위의 제안 수정 다음과 같은 경우에, 당신은 지금 올바른 UTC가 있다는 것을 확인/GMT 숫자 에포크 시간은 JavaScript로 전달됩니다.
Date.UTC(2013, 6, 19, 10, 12, 56)
1374228776000
new Date(1374228776000).toUTCString()
"Mon, 19 Aug 2013 10:12:56 GMT"
당신은 분명히 직면하고있는 두 번째 문제는 두 가지입니다 : 다음과 같은 코드로 확실히이 100 % 확인할 수 있습니다 만드는 Highcharts가 제대로 오히려 다른 어떤에서 값보다 UTC/GMT 값으로이 해석 (예 : 로컬) 시간대를 표시하고, 원하는 형식으로 표준 시간대를 올바르게 출력하도록 Highcharts에 알립니다.
는 Highcharts 제대로 시간 번호 해석 만들기 : 기본 Highcharts으로하는 것은 이와 같은 숫자 시간 데이터는 UTC에 가정 [[1331028000000, 5], [1331031600000, 6], [1331035200000, 4]. 자바 스크립트에 이상한 것을 숨기고 시간 데이터를 처리하는 방법을 변경하지 않는 한, 당신은 그 점에서 잘해야합니다.
만들기 Highcharts이 차트에 사람이 읽을 수있는 날짜에 정확한 시간을 표시 : 당신이 여기에 API에 세심한 관심을해야하는 곳은 다음과 같습니다 그런데 http://api.highcharts.com/highcharts#global.useUTC
, 세바스찬 Bochan는의 일원이다 Highcharts는 팀을 지원하므로 그의 의견을 확실히 신뢰할 수 있습니다.
당신은 UTC 시간을 사용하지 봤어 (http://api.highcharts.com/highstock#global.useUTC) –
예 그러나 그것 여전히 7 시간 미래. var highchartsOptions = Highcharts.setOptions (Highcharts.theme, { global : {useUTC : false}}); – DevilCode
새로운 날짜 (1374253976000)를 실행할 때 이상하게도 올바른 데이터 (귀하의 것)입니다. –