How to convert human-friendly date to milliseconds since the unix epoch?
-
dupe http://stackoverflow.com/questions/113829/date-to-timestamp-php – SilentGhost Oct 07 '09 at 16:00
-
4If you take into account the _milliseconds_ issue it is not a dupe – drAlberT Oct 07 '09 at 16:19
-
2It depends, to know that multiply seconds by 1k is not equal to have a milliseconds precision? see my answer :) – drAlberT Oct 07 '09 at 16:51
3 Answers
-
5
-
12Note 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 – drAlberT Oct 07 '09 at 16:11
-
1
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 :)

- 22,059
- 5
- 34
- 40
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
.

- 97,747
- 36
- 197
- 212
-
This is a terrific answer as it also goes into detail on the date formatting. +1 – Sep 07 '19 at 18:37