The way I do this is using the split function.
Say you have a table with a date column. When you enter the date of a guestbook entry in this table, you should format it in a regular, easily parsable format. This will allow you to parse the date when you want to display it and format it in whatever way is necessary.
Use the date command as the Nathan suggested. I do it like this:
$date = date("Y-m-d H:i:s", mktime());
This will give you a timestamp of the format "2000-07-09 20:50:53"
When you do a select to get the date from the db, you can parse the value with the list and split commands. I guess for a guestbook you would have done a query on all the entries and then dropped into a while loop to process each row.
For this example, let's sat that the $timestamp variable contains the date value of a particular entry. Use the list command to assign each value that results from the regexp split of the $timestamp to a variable:
list($year,$month,$day,$hour,$min,$sec) = split('[- :]', $timestamp);
Because our timestamp contained a hyphen, space, and colon, we split on these things to separate the individual components. Now we pass the variables we have just assigned to the date() command and format the date any way we wish:
date("l F jS @ h:i a", mktime($hour,$min,$sec,$month,$day,$year));
If you haven't read up on the date() command yet, I encourage you to do so.