I’ve written this PHP application. I work on a development server. Then I move code to a staging server for preliminary testing and client approvals. When the code is ready, it gets moved to a production server. In an ideal world, dev, staging, and production would all be configured identically. In the real world, you get different operating systems, different versions of the middleware application software (PHP, ColdFusion, .NET, etc.), different version of the databases, drivers don’t match, security patches are applied on one server but not another, and so forth.
So, this PHP application has a calendar piece for associating a date with a form collecting data. When adding a new thing, the form should have certain default values and the date should automagically show today’s date at 00:00 hours for the starting date and today’s date at 00:14 hours for the ending date. This works great on the development server. This works great on the staging server. But on staging, the date defaults to December 31, 2008 at 19:00 hours for the first date (the beginning date) and December 31, 2008 at 00:14 hours for the second date (the ending date).
It’s the little that make life so interesting and keep the padded rooms booked up.