2016-10-14 3 views
0

Я создаю новый объект Date, используя временную метку. Если я распечатаю этот объект, он вернет правильную дату и время. Но если я попытаюсь использовать getDate() и getTime(), они вернут мне неправильные цифры.Javascript getDate() и getMonth() return wrong result

Мой код:

var textDate = new Date(timestamp); 

console.log(timestamp); 
console.log(textDate); 
console.log(textDate.getDate(),textDate.getMonth(),textDate.getFullYear()); 

Моя консоль Результат:

1476483081000 
Date 2016-10-14T22:11:21.000Z 
15 9 2016 

Как я могу получить правильную дату и месяц с переменной TextDate?

+1

Вы получаете правильные цифры, месяцы основаны на нуле, поэтому октябрь фактически будет '9', а дата, вероятно, скорректирована для часового пояса – adeneo

+0

Дубликат: [javascript date to string] (http://stackoverflow.com/ вопросы/5914020/javascript-date-to-string) – jedi

+0

Месяц верен. Проблема с датой была решена после использования getUTCDate() и getUTCHours(). Спасибо! –

ответ

0

Метод getMonth() возвращает месяц от 0 до 11.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth

При печати даты, она опирается на часовой пояс. Если вы находитесь в часовом поясе на расстоянии 2 часов от GMT, тогда 22:11 могут перейти на новый день, вероятно, поэтому getDate() возвращает день дек.

+0

Возникла проблема с часовым поясом. Разрешено с getUTCDate(). Благодаря! –

+0

Если часовой пояс вас беспокоит, сначала удалите его из своей временной метки: 'new Date (timestamp - new Date(). GetTimezoneOffset())' – Simon