Неправильная дата из отметки времени - PullRequest
1 голос
/ 14 июня 2011

У меня есть проблема, которую я не могу решить самостоятельно.

Вот отметка времени 1308085200, взятая из базы данных моего сайта.Это представляет 2011-06-15 12:00:00

Вот код javascript, который я использую для «извлечения» даты в удобочитаемом формате.неправильные результаты.Например, приведенный выше код показывает 2011-5-15 21: 0: 0 вместо 2011-06-15 12:00:00

Что я делаю неправильно и как это исправить?

Ответы [ 4 ]

9 голосов
/ 14 июня 2011

JavaScript Date::getMonth() возвращает целое число от 0 до 11, поэтому ваша дата показывает май вместо июня.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth

Обновление

Что касается времени, то это то, что я получаю (AEST)

var d = new Date(1308085200000); // Wed Jun 15 07:00:00 GMT+1000 (EST)
d.toUTCString() // Tue, 14 Jun 2011 21:00:00 GMT
d.getUTCFullYear() // 2011
d.getUTCMonth() // 5
d.getUTCDate() // 14
d.getUTCHours() // 21
d.getUTCMinutes() // 0
d.getUTCSeconds() // 0

Похоже, ваша временная метка на самом деле не та, о которой вы думаете.

1 голос
/ 14 июня 2011

Дата и время могут варьироваться в зависимости от часового пояса, в котором вы находитесь. Поэтому в моей зоне (GMT + 2000) new Date(1308085200*1000) отображает Вт 14 июня 2011 г. 23:00:00 GMT + 0200 (Вт.Летнее время Европы) .Проверьте эту ссылку для всего, что вы всегда хотели знать о датах в javascript

Относительно форматирования (начальные нули и т. Д.), Может быть этот jsfiddle может помочь вам?

1 голос
/ 14 июня 2011

Ну, функция JavaScript getMonth () отстой и начинается с 0 для января.Вы должны добавить один.

Может быть, вы хотите использовать date js , поскольку это устраняет некоторые из этих проблем.

0 голосов
/ 29 июля 2016

Попробуйте это:

 function timeConverter(createdAt) {
  var date = new Date(createdAt);
  date.toUTCString()
  var year = date.getUTCFullYear();
  var month = date.getUTCMonth()+1;
  var day = date.getUTCDate();
  return day+"-"+month+"-"+year;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...