Я пытаюсь использовать в своем приложении простую функцию даты, чтобы передать дату в формате yyyy-mm-dd
, например 2017-07-30
, и вернуть ее в формате 07/30/2017
.
Однако, когда я пытаюсь это сделать, я правильно указываю дату, но она дает на один день короче, чем то, что я ищу.
function format(inputDate) {
var date = new Date(inputDate);
if (!isNaN(date.getTime())) {
var day = date.getDate().toString();
var month = (date.getMonth() + 1).toString();
// Months use 0 index.
return (month[1] ? month : '0' + month[0]) + '/' +
(day[1] ? day : '0' + day[0]) + '/' +
date.getFullYear();
}
}
console.log(format('2017-07-30'));
Вот скрипка: http://jsfiddle.net/49pptrj4/
Есть мысли относительно того, почему это возвращается неправильно?
Результат с моей стороны:
console.log(new Date('2017-07-30'))
производит в вашем браузере? - person Phil   schedule 31.07.20172017-07-31T00:00:00Z
- если вы находитесь к западу от GMT, это соответствует некоторому времени 30 июля - попробуйте вместо этого использовать getUTCDate getUTCMonth и getUTCYear - person Jaromanda X   schedule 31.07.2017Sat Jul 29 2017 17:00:00 GMT-0700 (PDT)
- person SBB   schedule 31.07.2017T00:00:00
к inputDatevar date = new Date(inputDate+'T00:00:00');
- в Firefox это рассматривается как ЛОКАЛЬНОЕ время - person Jaromanda X   schedule 31.07.2017