PDA

View Full Version : Daylight Savings Problem


Taylor_1978
02-17-2005, 11:09 AM
Hiya,

I'm having a little bit of a daylight savings issue.

My users create a competition on a specific night and time - eg. Mondays @ 7pm. The first date might be Feb 14th so I do the strtotime() to get the numeric value. The competition goes for 14 weeks, so in order to work out the next 14 weeks dates I do the value + 604800, 13 times.

I then turn those numeric values into date format with date().

My problem is, that when daylight savings commences and ends, the date format changes to 6pm and 8pm respectively because and extra or one less hour occours. How do I get around this?

An example:


<?php

$date = "19:00 February 14th, 2005";
$date = strtotime($date);
$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

$date = $date + 604800;
$newdate = date("H:i F j, Y",$date);
echo $newdate."<br>";

?>


The result is:

19:00 February 21, 2005
19:00 February 28, 2005
19:00 March 7, 2005
19:00 March 14, 2005
19:00 March 21, 2005
19:00 March 28, 2005
20:00 April 4, 2005
20:00 April 11, 2005

Time changes from 7pm to 8pm.


Thanks in advance! :thumbsup:

devinemke
02-17-2005, 04:27 PM
$date = '19:00 February 14th, 2005';
$newdate = strtotime($date . ' + 14 weeks');
echo date('H:i F j, Y', $newdate); // outputs 19:00 May 23, 2005

Taylor_1978
02-18-2005, 04:22 AM
Well, that was easy! Thanks so much! :thumbsup: