Где ошибка в функции?

313
04 сентября 2017, 08:05

Не работает, если задать в параметре массив. Почему выводит NaN?

function formatDate(date) { 
	var toString = {}.toString; 
	if (toString.call(date) === '[object Date]') { 
		var dd = date.getDate(); 
  		if (dd < 10) dd = '0' + dd; 
		 
  		var mm = date.getMonth() + 1; 
  		if (mm < 10) mm = '0' + mm; 
		 
  		var yy = date.getFullYear() % 100; 
  		if (yy < 10) yy = '0' + yy; 
		 
  		return dd + '.' + mm + '.' + yy; 
	} 
	else if (typeof date === 'string') { 
		date = date.split('-').join(); 
		return formatDate(new Date(date)); 
	} 
	else if (Array.isArray(date)) { 
		date = date.join(); 
		return formatDate(new Date(date)); 
	} 
	else { 
		date = new Date(date*1000); 
		date = date.getFullYear() + ', ' + date.getMonth() + ', ' + date.getDate(); 
		return formatDate(new Date(date)); 
	} 
} 
 
console.log( formatDate('2011-10-02') ); // 02.10.11 
console.log( formatDate(1234567890) ); // 14.02.09 
console.log( formatDate([2014, 0, 1]) ); // 01.01.14 
console.log( formatDate(new Date(2014, 0, 1)) ); // 01.01.14

Answer 1

ну у тебя строка получается 2014,0,1, а это не валидный аргумент, наверно надо писать так:

if (Array.isArray(date)) {      
    return formatDate(new Date(...date));
}    

либо писать валидную строку для входа, как в случае с 2011-10-02

Answer 2

Upd: прошу прощения, просто формат надо было поправить

console.log( formatDate([2014, 01, 01]) ); // 01.01.14
READ ALSO
Подключение twilio к webpack

Подключение twilio к webpack

Кто-нибудь подключал твилио к вебпаку? Что-то не могу найти как это сделатьБуду благодарен за помощь

310
Canvas двумерная сетка, html5

Canvas двумерная сетка, html5

Подскажите пожалуйста, как нарисовать на canvase двумерную сетку в квадратик ? Вот к примеру есть у меня облако синее, как переделать на сетку?

318
Правильное всплывающее окно jquery с display: flex

Правильное всплывающее окно jquery с display: flex

Как сделать плавно появляющееся и скрывающееся модальное окно, как $(obj)fadeIn() - $(obj)

323
Запуск событий в javascript

Запуск событий в javascript

Доброго времени суток

283