A few tips i can think off the top of my head..
-
Don't trust the browser to give valid data. You can restrict when is offered in the dropdowns to simplifiy things for the users but always verify user input.
-
Store the date in unix time format. This will be easy to compare, sort, and convert to human readable using localtime as for converting human readble dates to unix tim check out Time::ParseDate
-
Of cousre all of the usual stuff about using strict, -w, and taint mode.
Hope this helps you out.