Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2014, 00:28
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

birthdateToAge в safari
function birthDateToAge(birthDate) {
	birthDate = new Date(birthDate);
	var now = new Date(),
	age = now.getFullYear() - birthDate.getFullYear();
        return now.setFullYear(1972) < birthDate.setFullYear(1972) ? age - 1 : age;
}


В safari - nan. Что делать?
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2014, 06:04
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

У меня в safari все норм:
function birthDateToAge(birthDate) {
    birthDate = new Date(birthDate);
    var now = new Date(),
    age = now.getFullYear() - birthDate.getFullYear();
        return now.setFullYear(1972) < birthDate.setFullYear(1972) ? age - 1 : age;
}

alert(birthDateToAge(new Date(1986, 2, 3)));


Покажите как запускаете.
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2014, 16:35
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

Да, Riim, твой вроде скрипт из соседней ветки. Дата приходит в формате "19.01.1988"
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2014, 14:31
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

/**
 * @param {string} date
 * @returns {Date}
 */
function parseDate(date) {
	var match = date.match(/\d+/g);

	if (match !== null && match.length === 3) {
		var year = Number((match[0].length > 2 ? match.reverse() : match)[2]);
		var month = match[1] - 1;
		var day = Number(match[0]);
		var date_ = new Date(year, month, day);

		if (date_.getFullYear() === year && date_.getMonth() === month && date_.getDate() === day) {
			return date_;
		}
	}
	return new Date(NaN);
}

/**
 * @see [url]http://javascript.ru/forum/misc/38107-vychislenie-vozrasta.html[/url]
 *
 * @param {Date|int} bd
 * @returns {int}
 */
function birthDateToAge(bd) {
	bd = new Date(bd);
	var now = new Date();
	return now.getFullYear() - bd.getFullYear() - (now.setFullYear(1972) < bd.setFullYear(1972) ? 1 : 0);
}

alert(birthDateToAge(parseDate('19.01.1988')));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SudoSlider, Safari pavelslap Элементы интерфейса 0 13.11.2013 16:04
Jplayer 2.2 не работает в Safari SuperPuperLesha Events/DOM/Window 0 10.02.2013 12:02
Drag'n'drop в Safari 5 danik.js Opera, Safari и др. 2 22.01.2013 23:10
Обновить страницу в Safari DorianLeroy Общие вопросы Javascript 5 11.08.2011 16:58
Chrome, Safari и размер view-порта с абсолютно позиционируемыми элементами uonax Opera, Safari и др. 10 29.06.2010 22:57