Re: Calculating daylight savings time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It tells PHP which way to format various locale specific functions. (date 
stuff, money stuff, etc..) 

-Micah

On Wednesday 20 August 2003 2:23 am, Lisi wrote:
> I saw it, at first I didn't think it would work but it's great - just what
> I need. I guess I was just surprised that there isn't an easier way to do
> this in PHP by switching from the default. I also like to write my own code
> rather than use someone else's,  since it's the best way to learn, but in
> this case it wasn't worth rewriting this function from scratch since it
> does exactly what I need.
>
> I'm still confused though about setlocale - what does this do in plain
> English?
>
> Thanks for the info,
>
> -Lisi
>
> At 10:05 AM 8/19/03 -0700, Micah Stevens wrote:
> >Here's the example code I was talking about in the docs, you should really
> >read the user submitted notes in the docs, they're very helpful, moreso
> > than the docs from time to time.
> >
> >(this is not my code..)
> >
> >leafrink at hotmail dot com
> >  28-Feb-2003 07:26
> >
> >
> >
> >Wrote this function after a fair bit of searching on the subject.
> >Don't know if it's the best way to do it, but it works.
> >
> >Its not that exact but it's pretty close.
> >
> >Hope it helps someone out there.
> >
> >/**
> >* function for working out if it is daylight savings for a specific date.
> >* must specify when daylight savings starts and ends in the format
> >* "[1=First,2=Second,3=Third,4=Fourth,L=Last]:NameOfDay:Of The Month"
> >* e.g. "L:Sun:3" = Last Sunday in March
> >* some will not meet this criteria but most do.
> >*
> >* see - http://webexhibits.org/daylightsaving/g.html for daylight savings
> >times around the world.
> >*
> >*/
> >function is_daylight_savings($gmtime,$DSTStart = '',$DSTEnd = ''){
> >   //global $locale;
> >   //For Most Of Australia
> >   //DayLightSavings Starts Last sunday in October
> >   $DSTStart = "L:Sun:10";//$locale['DSTStart'];
> >   //DayLightSavings Ends Last Sunday in March
> >   $DSTEnd = "L:Sun:3";//$locale['DSTEnd'];
> >
> >   $DSTStart = split(":",$DSTStart);
> >   $DSTEnd = split(":",$DSTEnd);
> >
> >   $gmtMonth = date("n",$gmtime);
> >   // if not even in the Important changeover months.
> >   if ($gmtMonth < $DSTStart[2] && $gmtMonth > $DSTEnd[2]){
> >    return false;
> >   } else if ($gmtMonth > $DSTStart[2] || $gmtMonth < $DSTEnd[2]) {
> >    return true;
> >  } else {
> >    //it is in the Start or End Month
> >    if ($gmtMonth == $DSTStart[2]){
> >       $True = true;
> >       $week = $DSTStart[0];
> >      $ImportantDay = $DSTStart[1];
> >    } else {//it is in the End Month
> >       $True = false;
> >       $week = $DSTEnd[0];
> >      $ImportantDay = $DSTEnd[1];
> >    }
> >     //get the day of the month
> >   $gmtDay = date("j",$gmtime);
> >     //work out what week it starts/ends.
> >     if ($week == 'L'){
> >       $week = 4;
> >       $ldom = 4;//last day of month factor
> >     }
> >     //if the week in which it starts/ends has not been reached
> >     if($gmtDay < ($week-1)*7){
> >     return (!$True);
> >     } else {
> >       $gmtDate = getdate($gmtime);
> >       //go by a Day of the Week Basis
> >       for ($i=($week-1)*7;$i<(($week*7)+$ldom);$i++){
> >         $checkDate = mktime(0,0,0,$gmtDate["mon"],$i,$gmtDate["year"]);
> >        //get the actual day it starts/ends
> >         if (date("D",$checkDate) == "Sun" && date("n",$checkDate) ==
> > $gmtMonth
> >){
> >           $day = date("j",$checkDate);
> >         }
> >       }
> >       if ($gmtDay < $day) {//if it has not reached the day
> >         return (!$True);
> >       } else {
> >         return $True;
> >       }
> >    }
> >  }
> >}
> >
> >//Testing
> >if(is_daylight_savings(strtotime("26-Oct-2003"))){
> >  echo "is DAYLIGHT SAVINGS";
> >}else {
> >  echo "is NOT DAYLIGHT SAVINGS";
> >}
> >
> >On Tuesday 19 August 2003 2:37 am, Lisi wrote:
> > > What I need to do is figure this out for more than one location at a
> > > time. I am displaying Sabbath times for several different cities around
> > > the world at once (New York, London, Paris, Jerusalem, Sydney) - i.e. a
> > > certain amount of time before sunset, different for each city and each
> > > city is in a different dst zone.
> > >
> > > Can I do something using setlocale, to change timezones to the city I
> > > need, and then use date(I)? Or does date(I) always work only for the
> > > US? And what exactly does setlocale change? I couldn't figure out from
> > > the notes on php.net.
> > >
> > > Thanks for your help,
> > >
> > > -Lisi
> > >
> > > At 12:06 AM 8/17/03 -0700, Micah Stevens wrote:
> > > >As an afterthought, the docs are inspecific on who's daylight savings
> > > >schedule
> > > >that the function returns. There's another user submitted function in
> > > > the comments list that takes into account a specific schedule.
> > > >
> > > >-Micah
> > > >
> > > >On Sunday 17 August 2003 12:43 am, Lisi wrote:
> > > > > I have sunset times stored in a database and the a PHP page that
> > > > > performs a number of calculations on the retrieved time. One of the
> > > > > things I need to figure out is whether or not to add an hour for
> > > > > Daylight Savings Time. Since there is more than once location, and
> > > > > each one begins and ends DST at a different time, I need to figure
> > > > > this out based on location. My question is, how do I figure out
> > > > > whether it's the "first  sunday in April" yet or not? I know it has
> > > > > to do with the date() function somehow, I'm just not sure how to
> > > > > use it properly in this case - any suggestions?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > -Lisi
> >
> >--
> >PHP Database Mailing List (http://www.php.net/)
> >To unsubscribe, visit: http://www.php.net/unsub.php


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux