ID: 13900 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Date/time related Operating System: Windows NT/XP PHP Version: 4.0.6 New Comment:
I downloaded 4.06 again and installed it manually. I have a feeling that my php.ini is somehow different than the standard because when I tried to use the optimized php.ini file I couldn't even load my script. But when I used the dist version the script worked (except for the date(I) part). I must have my PHP configured incorrectly. But why would it do it on two different computers and two different versions of PHP??? Previous Comments: ------------------------------------------------------------------------ [2001-11-02 21:56:52] [EMAIL PROTECTED] Tried it from the command line and got all zeros. ------------------------------------------------------------------------ [2001-11-01 15:44:10] [EMAIL PROTECTED] You said you were running it as a CGI therefore my test should be equivalent without me having to use Apache. I don't see how the CGI being called through Apache could do this. BUT jic, please try executing your PHP CGI from the command line against those test scripts and see if you get the same results. -Chris ------------------------------------------------------------------------ [2001-11-01 15:32:35] [EMAIL PROTECTED] Well, I am getting zeros... I get in on PHP 4.06 on Windows XP pro and I get zeros on PHP 4.05 on Windows NT 4.0. both are running on Apache. Maybe that is the issue. Are you running PHP on Apache? ------------------------------------------------------------------------ [2001-11-01 14:13:27] [EMAIL PROTECTED] See http://bugs.php.net/bug.php?id=13888 for why the months are doubled. Here is my result from first script C:\php>php t.php X-Powered-By: PHP/4.0.6 Content-type: text/html 111111 All 1's not 0's. Second script 1111110 I have NO clue what it is doing on your box, mine is Windows XP RC2 I don't have access to any other windows version right now only Linux. Can someone else verify this on NT4? I am using the exact same PHP on XP as you. -Chris ------------------------------------------------------------------------ [2001-11-01 09:52:59] [EMAIL PROTECTED] Bug id #13880 Status: Bogus User Modify Dev Modify From: [EMAIL PROTECTED] Reported: 2001-10-30 19:25:30 Type: Date/time related OS: Windows NT/XP PHP Version: 4.0.6 Summary: date(I) does not correctly identify daylight saving time -------------------------------------------------------------------------------- [2001-10-30 19:25:30] [EMAIL PROTECTED] There appears to be a bug in the date() function when using the I (capital i) format. Date(I) always returns 0 (zero) no matter what the date is. Date(I) is used to determin if a date occurs during daylight saving time or not. Here is the script I am using: if (date(I, mktime(0,0,0,6,1,2001))=1) { do this; } else { do that; } No mater what the date is it always returns zero. I have tried setting date(I) to a variable outside of the if/then statement but it always sets the variable to zero. I have tried setting the timestamp to a variable first and using it in date(): $ts = mktime(0,0,0,6,1,2001); $ds = date(I, $ts); That doesn't work either, returns zero. No matter what I do it just doesn't work. Does this part of date() even work? Running PHP 4.05 with Zend Optimizer v1.1.0 on Windows NT 4.0 build 1381, CGI version, Apache/1.3.20 . Also doesn't work on PHP 4.06 on Windows XP, CGI version, Apache/1.3.22. Thank you for your consideration and hard work. PHP is a great product. Keep up the good work! Bradford Plummer [2001-10-30 19:33:48] [EMAIL PROTECTED] Two obvious problems with your test script. I should be in quotes, and = should be ==. Make those changes and try again. This works okay on Linux. -Chris [2001-10-30 19:36:28] [EMAIL PROTECTED] Works on Windows XP as well with 4.0.6. -Chris [2001-10-30 19:36:33] [EMAIL PROTECTED] Works on Windows XP as well with 4.0.6. -Chris [2001-11-01 01:34:05] [EMAIL PROTECTED] cnewbill said this: Two obvious problems with your test script. I should be in quotes, and = should be ==. Make those changes and try again. This works okay on Linux. -Chris ------------------------------------------------------ First of all... You are right. I left the quotes out of my bug report. I was, however, using them in the actual script. If you tested my script you may have also noticed that the following commands return a zero on a Win32 system when they should return a one: echo date("I", mktime(0,0,0,5,1,2001)); echo date("I", mktime(0,0,0,6,1,2001)); echo date("I", mktime(0,0,0,7,1,2001)); echo date("I", mktime(0,0,0,8,1,2001)); echo date("I", mktime(0,0,0,9,1,2001)); echo date("I", mktime(0,0,0,10,1,2001)); Also returning a zero instead of a one are: echo date("I", mktime(0,0,0,date("m")-1,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-2,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-3,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-4,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-5,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-6,date("d"), date("Y"))); echo date("I", mktime(0,0,0,date("m")-7,date("d"), date("Y"))); So it doesn't seem to matter how I format the original if/then statement because it will always evaluate incorrectly because date() is doing something screwy on Win32. Also, I found something else while working on this. When using the M format, date() has a problem figuring out what month name it is supposed to return. Here is some example script: echo date("M, I", mktime(0,0,0,date("m")-1,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-2,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-3,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-4,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-5,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-6,date("d"), date("Y"))); echo "<br>"; echo date("M, I", mktime(0,0,0,date("m")-7,date("d"), date("Y"))); That script returns this on my Win32 system: Oct, 0 Aug, 0 Jul, 0 Jul, 0 May, 0 May, 0 Mar, 0 At least it did for my yesterday (31 Oct 2001). Notice how Jul and May are doubled? What happened to Apr and Jun? Could you check in to these issues and let me know what you find out. By the way, thank you for responding so quickly. Bradford Plummer ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=13900&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]