RE: [PHP] What's with 2016-11-06
| From: | Cliff Nieuwenhuis | Date: | Tue, 25 Oct 2016 15:09:16 +0000 |
| Subject: | RE: [PHP] What's with 2016-11-06 | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-325774@lists.php.net to get a copy of this message | ||
Thank you Richard for the explanation:
> DST. On both 2015-11-01 and 2016-11-06 the US switched back to standard time.
..and thank you Shiplu for the DateTime suggestion. I used your suggestion to correct my program,
but wanted to report a minor change needed in shiplu's example:
$d1->add(new DateInterval('PD1')); // generated error 'Unknown or bad format
(PD1)'
$d1->add(new DateInterval('P1D')); // works
--
Clifford R. Nieuwenhuis
IT Manager
Architectural Design Consultants, Inc.
c.nieuwenhuis@adcidesign.com
608-254-6181
From: muquaddim@gmail.com [mailto:muquaddim@gmail.com] On Behalf Of shiplu
Sent: Tuesday, October 25, 2016 9:18 AM
To: Cliff Nieuwenhuis
Cc: php-general@lists.php.net
Subject: Re: [PHP] What's with 2016-11-06
If you want to traverse days between 2 dates, just use DateTime and DateInterval classess.
$d1 = new DateTime('2016-10-30');
$d1->add(new DateInterval('PD1'));
$d1 should point to next day now.
On Tue, Oct 25, 2016 at 4:10 PM, Cliff Nieuwenhuis <c.nieuwenhuis@adcidesign.com> wrote:
This is a stripped-down version of a calendar program. Can anyone explain why November 6 2016
appears twice? Or 2015-11-01?
I'm assuming the fault lies with
$calday = $calday + (60 * 60 * 24);
..but I'd like to know why some days apparently have less than 86400 seconds and how
(efficiently) to work around that.
Here is my code:
$calday = strtotime('2016-10-30');
$finish = strtotime('2016-12-01');
while ( $calday < $finish ) {
for ($dow = 0; $dow < 7; $dow++) {
// set the year, month, and day
$year = (int) date('Y', $calday);
$month = (int) date('n', $calday);
$day = (int) date('j', $calday);
echo "Year: $year, Month: $month, Day: $day, Day of Week:
$dow <br />\n";
// move on to the next day
$calday = $calday + (60 * 60 * 24);
}
echo "* * *<br />\n";
}
Thanks in advance for any help.
--
Clifford R. Nieuwenhuis
IT Manager
Architectural Design Consultants, Inc.
c.nieuwenhuis@adcidesign.com
608-254-6181
--
Clifford R. Nieuwenhuis
IT Manager
Architectural Design Consultants, Inc.
c.nieuwenhuis@adcidesign.com
608-254-6181
Visit our redesigned website:
www.adcidesign.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
Shiplu.Mokadd.im
Unix Hacker
Innovation distinguishes between follower and leader
— Steve Jobs
An expert is a person who has made all the mistakes that can be made in a very narrow field.
— Neils Bohr