The strtotime function has a pretty good lexer for reading strings like that, but it's not infalible. If you know what format you date is going to be in (ie it will always be DDMMMYYYY or whatever), I suggest you try and convert it into something more easily readable - simply adding spaces may help.
If you aren't getting things in a standard format, things could get interesting.
If you are collecting user input from a web page, it's a good idea to use <select> elements instead of letting the user freely enter a string, that way you can know that the value will always be in a sensible range, and build a string in a known format to pass to strtotime() yourself.
Since months/days/hours/mins/seconds never change format, you can use <select> for these and have a <input type='text'> for the year. Then, if your feeling clever, you can write a JS validator to make sure the user always enters a sensible number.
Be aware of limitations on the range of timestamps that PHP will support though - see the notes on the strtotime() manual page...