+3  A: 

You're looking for strtotime.

Sample Usage:

$myvar = strtotime("7 October 2009");

That gives you seconds since the Unix epoch, so you want:

$myvar = strtotime("7 October 2009") * 1000;

Watch out for the fact that strtotime "guesses" what you mean (how should it interpret "12-08-2009"? probably as 8th December, but it might equally validly - and being a Brit, thoroughly sensibly - guess 12th August). If you know the format in advance, use strptime.

Dominic Rodger
+4  A: 
strtotime($human_readable_date) * 1000
chaos
+1 for spotting he said milliseconds, which I didn't.
Dominic Rodger
thanks to you both
stunnaman
Note that you have milliseconds only as a fake, as your real precision is only of 1k milliseconds, aka second :) ... This way you __don't__ have milliseconds, but seconds expressed as number of milliseconds
AlberT
+1  A: 

Pay attention: strtotime() * 1000 is ok to have seconds expressed as milliseconds!

The right answer is that it is not possible to have a millisecond precision on date/time functions in PHP. The precision of Unix Epoc based functions is only of 1k milliseconds, aka second :)

Using the suggested answers you don't have milliseconds, but seconds expressed as number of milliseconds.

If you are aware of this, and you don't really need a millisecond precision then the answers given are ok, but the question was wrong :)

AlberT