ID: 8242 Updated by: david Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Closed Bug Type: Date/time related Assigned To: Comments: fixed with: while (beat < 0) { beat += 1000; } beat = beat % 1000; Swatch Internet Time is very, very sad. Previous Comments: --------------------------------------------------------------------------- [2000-12-13 18:59:39] [EMAIL PROTECTED] Sometimes in tzones GMT+something the calculation below can give negative or time greater than 1000 the fix just checks both cases since timezone cannot add more than a day (or less respectively) or in other terms 1000 swatch beats case 'B': /* Swatch Beat a.k.a. Internet Time */ beat = (((((long)the_time)-(((long)the_time) - ((((long)the_time) % 86400) + 3600))) * 10) / 864); -- the fix -- if (beat < 0) beat += 1000; if (beat > 999) beat -= 1000; -- end fix -- sprintf(tmp_buff, "%03d", beat); /* SAFE */ strcat(return_value->value.str.val, tmp_buff); break; --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=8242 -- 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]