2016-04-03 3 views
3

У меня есть строка utc базы данных, я перехожу в Date (attrs.endDate), а затем вычитаю текущую дату utc через новую Date(), и я не могу ее получить сообщите мне, какая будет правильная разница для дат 2 utc.Javascript date (string date) - date() не отображается правильная разница

attrs.endDate всегда 8h utc вперед, и я получаю разницу, чтобы сделать обратный отсчет, но я получаю 13-часовую разницу.

var totalMillisecsLeft = Date(attrs.endDate) - new Date() 
+0

Если вы звоните [ 'Date() 'без' new'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date), он не использует никаких аргументов. Он всегда возвращает текущую дату/время как форматированную строку. –

+0

Добавлен новый, и я все еще получаю разницу в часах с моего локального часового пояса вместо даты utc in - new Date() – user1552172

+0

Временная метка (полученная '.getDate()'), лежащая в основе объекта 'Date', всегда основана на в UTC. Если разность в миллисекундах отключена по часам, вполне вероятно, что 'endDate' не указывает часовой пояс, и браузер принимает его для вас. –

ответ

0

Вторая дата не является датой utc, а вашей местной датой. вы должны использовать:

var totalMillisecsLeft = Date(attrs.endDate) - getUTCDate() 
+0

Я получаю getUTCDate() не является функцией – user1552172

+0

Прошу прощения. метод работает на экземпляре объекта Date. Попробуйте следующее: var d = new Date(); d.getUTCDate(); – Tal87

+0

Теперь я схожу с ума, вместо 4-5 часов из-за этого я думаю, что это потому, что метод getUTCDate() возвращает день месяца (от 1 до 31) объекта даты – user1552172

0

Я закончил с использованием moment.utc (MyDate) - moment.utc() и все работало отлично ... До сих пор не знаю, почему

Смежные вопросы