PHP и JavaScript, оба смотрят на системное время.Чья система?Тот, на котором они бегут.Сервер может находиться в другой стране с другим временем, отсюда и разница.
Кроме того, часы клиента (или реже сервера) могут быть неправильными.
Один способ, который я частоиспользовать для противодействия этой проблеме, как это:
var referenceTime = new Date('<?php echo date("M n, Y"); ?>');
// referenceTime is now the same as server time