[php] UTC는 일광 절약 시간을 준수합니까?

시간대를 변환하거나 UTC반대로 변환하려는 스크립트를 작성하려고합니다 . 그러나 일부 시간대를 UTC DST 고려 여부와 상관없이 시간대를 변환하는 동안 동일한 UTC시간 을 제공 한다는 것을 알게 된 곳에서 . 예를 들어 : 내가 이것을 변환하려고하면 :

$mytime = '2011-03-31 05:06:00.000';
$myzone = 'America/New_York';

DST를 사용하고 DST를 사용하지 않고 UTC로 변환하면 ..

(New_York->UTC DST=Yes)2011-03-31 09:06:00
(New_York->UTC DST=No)2011-03-31 09:06:00 ..........

이 corect입니까 ?? 그렇다면 왜 ??? 누구든지 대답 해주세요.



답변

아니요, UTC 자체에는 DST가 없습니다. 다른 시간대가 상대적으로 표현되는 기준의 상수 프레임입니다.

로부터 위키 백과 UTC 페이지 :

UTC는 계절의 변화에 ​​따라 변경되지 않지만, 시간대 관할 구역에서 일광 절약 시간 또는 서머 타임을 준수하는 경우 현지 시간 또는 시민 시간이 변경 될 수 있습니다. 예를 들어 UTC는 겨울에는 미국 동부 해안의 현지 시간보다 5 시간 빠르지 만 여름에는 4 시간 빠릅니다.

즉, 시간대가 DST를 관찰 할 때 DST 전환이있을 때 UTC로부터의 오프셋이 변경되지만 이는 UTC가 아니라 DST를 관찰 하는 시간대 입니다.

PHP 시간대 처리에 대해 많이 알지 못하는 경우 변환에서 “DST 포함”또는 “DST 제외”를 지정할 수 있다는 것이 이상해 보입니다. 시간대 자체가 DST가 시작되는시기를 지정합니다. 그럴 필요는 없습니다. 당신이 직접 지정하는 것.


답변

이 코드를 사용하여 동일한 문제가 있습니다.

date_default_timezone_set('UTC');
$nowdate = date('l jS \of F Y h:i:s A');
echo "Current date and time is: " . $nowdate;

지금은 여름이고이 코드가 생성하는 시간은 한 시간 늦습니다. 따라서 PHP의 UTC 시간이 DST로 조정되지 않는다고 생각합니다.

누군가가 해결책을 가지고 있는지 흥미로워하십시오 …

편집하다:

포럼에서이 코드를 찾았고 완벽하게 작동합니다 !!

date_default_timezone_set('Europe/London');
$TIME =  date("m/d/Y H:i",time());

따라서 $ TIME을 사용하여 현재 날짜와 시간을 호출 할 수 있습니다. date () 태그 내부의 비트를 변경하여 출력을 다르게 표시하도록 조정할 수 있습니다. date () 출력을 조정하려면 다음 가이드를 사용하십시오. http://php.net/manual/en/function.time.php

도움이 되었기를 바랍니다 🙂


답변