Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does UTC observe daylight saving time?

Tags:

php

time

dst

I am trying to write a script where i want to convert any timezone to UTC and reverse. But from some where i came to know that while converting any timezone to UTC with or without DST consideration it will give the same UTC time. For example: If i try to convert this one:

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

to UTC with DST and without DST,i will get ..

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

Is this corect ??If yes then why??? Please anybody give me your answers.

like image 265
0001 Avatar asked Mar 31 '11 05:03

0001


People also ask

What time zones are not affected by daylight savings?

There are two time zones that do not observe daylight saving time and that have the same UTC offset (-06:00): (UTC-06:00) Central America. (UTC-06:00) Saskatchewan.

What is central daylight time in UTC?

The modified time is called "Central Daylight Time" (CDT) and is UTC−05:00.


2 Answers

No, UTC itself never has DST. It is the constant frame of reference other time zones are expressed relative to.

From the Wikipedia UTC page:

UTC does not change with a change of seasons, but local time or civil time may change if a time zone jurisdiction observes daylight saving time or summer time. For example, UTC is 5 hours ahead of local time on the east coast of the United States during winter, but 4 hours ahead during summer.

In other words, when a time zone observes DST, its offset from UTC changes when there's a DST transition, but that's that time zone observing DST, not UTC.

Without knowing much about PHP time zone handling, it seems strange to me that you can specify "with DST" or "without DST" in a conversion - the time zones themselves specify when DST kicks in... it shouldn't have to be something you specify yourself.

like image 193
Jon Skeet Avatar answered Oct 21 '22 07:10

Jon Skeet


I'm having the same issue, using this code:

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

It is summer now, and the time this code produces is one hour behind - so I don't think that UTC time in PHP adjusts to DST.

Be interesting to see if anyone has the solution...

EDIT:

Found this code on a forum, works perfectly!!

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

So you can then call the current date and time by using $TIME. The output can be adjusted to display it differently by changing the bit inside the date() tag. If you want to adjust the date() output, use this guide: http://php.net/manual/en/function.time.php

Hope this helps :)

like image 27
MattFiler Avatar answered Oct 21 '22 07:10

MattFiler