Если я сделаю
alert(new Date(1313690400000))
возвращается: Thu Aug 18 2011 13:00:00 GMT-0500 (CDT)
однако, PHP
echo date('Ymd H:i:s', 1313690400000);
возвращается: 1951-12-14 05:50:24
JavaScript использует миллисекунды как временную метку, тогда как PHP использует секунды. В результате вы получаете очень разные даты, так как он отключен в 1000 раз.
Поэтому удалите три нули со стороны PHP:
echo date('Ymd H:i:s', 1313690400);
Функции даты / времени PHP используют количество секунд с момента эпохи, в то время как Javascript использует количество миллисекунд. В вашей php-функции:
echo date('Ym-d', 1313690400000 / 1000);
Javascript Date – миллисекунды с момента Epoch, тогда как дата PHP использует временную метку unix, которая находится в секундах.
Итак, чтобы получить ту же дату в php, сначала разделите на 1000