Re: [PHP-DB] Calculating daylight savings time

2003-08-20 Thread Lisi
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 

Re: [PHP-DB] Calculating daylight savings time

2003-08-20 Thread Micah Stevens
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 

Re: [PHP-DB] Calculating daylight savings time

2003-08-19 Thread Lisi
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


Re: [PHP-DB] Calculating daylight savings time

2003-08-19 Thread Micah Stevens
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-DB] Calculating daylight savings time

2003-08-17 Thread Lisi
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