By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,289 Members | 1,463 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,289 IT Pros & Developers. It's quick & easy.

Slow performance using strtotime on prior 1970 dates

P: n/a
cla
I'm using this code on an application to track football schedules:
----
$season = '2005';
$basedate = strtotime('this friday', strtotime('31 August '.$season));

for($d=0;$d<=31;$d++) {
$d2=strtotime("+".$d." day",$basedate);
echo(date('m d Y',$d2)."\n");
}
----
The purpose is to find the first Friday on or after Aug. 31 in a given
year. Plug '2005' into $season, and it flies through. Plug in
'1905', however, and each step in the for loop takes about .5 sec.
I'm running this code in PHP 5.2.1. Any ideas?

Sep 14 '07 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Well the fact is 1970 was when the Unix Epoch started, so any dates
prior to that date are much more slower. I don't know why, but try on
a Windows machine and see if the same happens. Probably it's just on
*nix systems.

Sep 14 '07 #2

P: n/a
On Sep 14, 3:22 pm, cla <cla...@gmail.comwrote:
I'm using this code on an application to track football schedules:
----
$season = '2005';
$basedate = strtotime('this friday', strtotime('31 August '.$season));

for($d=0;$d<=31;$d++) {
$d2=strtotime("+".$d." day",$basedate);
echo(date('m d Y',$d2)."\n");}

----
The purpose is to find the first Friday on or after Aug. 31 in a given
year. Plug '2005' into $season, and it flies through. Plug in
'1905', however, and each step in the for loop takes about .5 sec.
I'm running this code in PHP 5.2.1. Any ideas?
If all you want to do is find the first Friday on or after August 31
why do you need the loop?

Sep 14 '07 #3

P: n/a
cla
On Sep 14, 12:59 pm, ZeldorBlat <zeldorb...@gmail.comwrote:
On Sep 14, 3:22 pm, cla <cla...@gmail.comwrote:
I'm using this code on an application to track football schedules:
----
$season = '2005';
$basedate = strtotime('this friday', strtotime('31 August '.$season));
for($d=0;$d<=31;$d++) {
$d2=strtotime("+".$d." day",$basedate);
echo(date('m d Y',$d2)."\n");}
----
The purpose is to find the first Friday on or after Aug. 31 in a given
year. Plug '2005' into $season, and it flies through. Plug in
'1905', however, and each step in the for loop takes about .5 sec.
I'm running this code in PHP 5.2.1. Any ideas?

If all you want to do is find the first Friday on or after August 31
why do you need the loop?
The loop's more for a demo. In the live app, there's a drop down list
of possible dates within a given week of a season. The first Friday
is just the starting point from which all subsequent dates are
referenced.

Sep 14 '07 #4

P: n/a
cla
On Sep 14, 12:24 pm, RageARC <rage...@gmail.comwrote:
Well the fact is 1970 was when the Unix Epoch started, so any dates
prior to that date are much more slower. I don't know why, but try on
a Windows machine and see if the same happens. Probably it's just on
*nix systems.
Made a quick test on a Windows box, and the performance seems to be
about the same.

Sep 14 '07 #5

P: n/a
Well, I searched, and I found the following:

The valid range of a timestamp is typically from Fri, 13 Dec 1901
20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates
that correspond to the minimum and maximum values for a 32-bit signed
integer.) Additionally, not all platforms support negative timestamps,
therefore your date range may be limited to no earlier than the Unix
epoch. This means that e.g. dates prior to Jan 1, 1970 will not work
on Windows, some Linux distributions, and a few other operating
systems. PHP 5.1.0 and newer versions overcome this limitation though.

Yep, 5.1.0 overcomes this limitation, but at a much slower pace.

Sep 14 '07 #6

This discussion thread is closed

Replies have been disabled for this discussion.