Is your timestamp field stored in the traditional Unix style timestamp that is the number of seconds since 1970? If so then you should just be doing some basic number searches on the column and not date type searches.
The key to getting this to work properly is to make use of the date and time formatting functions in php. They are very robust and easy to use. Here is a general idea of how I implement searches like this.
First get it working with a single input field, you can update it after the fact to use the select lists like you mentioned.
When the user enters the value you will convert the string to a time stamp using the strtotime() function.
You then perform the search with this value since it should match the format in the db. The smaller the timestamp the further back in time it will be. So anything less than the entered time will be before it and anything equal to or greater than the entered time will be after it.
When you return the results on your results page you will need to make use of another function to format the date, it is simply the date() function. It will allow you to format a Unix timestamp in just about any way you would like. Here are some links to these functions pages on the php site for more info.
strtotime
php.net/strtotime
date
php.net/manual/en/function.date.php
Please post back if you have any further questions or need any clarification on this.