Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2008, 09:35
Интересующийся
Отправить личное сообщение для nameivan Посмотреть профиль Найти все сообщения от nameivan
 
Регистрация: 24.05.2008
Сообщений: 17

расчет возраста
Есть 2 поля, в одно из которых вводится текущая дата при помощи сприпта JS в формате 01-01-2008. Во второе поле вводим дату сами тоже в формате 01-01-2008. Необходимо расчитать сколько лет между датами. Подскажите скрипт пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2008, 14:24
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

надо подробить дату через функцию кажется она split называется,
потом вычесть из одного числа другое eval-ом.
вот и всё и у тебя получается возраст.
Ответить с цитированием
  #3 (permalink)  
Старый 24.05.2008, 14:37
Интересующийся
Отправить личное сообщение для nameivan Посмотреть профиль Найти все сообщения от nameivan
 
Регистрация: 24.05.2008
Сообщений: 17

спасибо,
подскажите пожалуйста
var DTR = document.form1.textfield.value - получаем значение поля, а как применить метод split?

не силен я в js.
Ответить с цитированием
  #4 (permalink)  
Старый 24.05.2008, 14:58
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

ну примерно так.
var udate = document.getElementById('id').value;
  var ddate = document.getElementById('id').value;
  udate = udate.split('-');
  ddate = ddate.split('-');
  udate = udate[2];
  ddate = ddate[2];
  numer = eval(ddate+'-'+udate);
Ответить с цитированием
  #5 (permalink)  
Старый 24.05.2008, 16:02
Интересующийся
Отправить личное сообщение для nameivan Посмотреть профиль Найти все сообщения от nameivan
 
Регистрация: 24.05.2008
Сообщений: 17

что то не срабатывает. результат NaN
Ответить с цитированием
  #6 (permalink)  
Старый 24.05.2008, 16:17
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Если бы у вас даты были в понятном для javascript формате можно было бы воспользоваться элегантным решением.
var date1 = '01/01/1988';
var date2 = '01/01/2008';
var date  = new Date();

date.setTime(Date.parse(date1));
var year1 = date.getFullYear();

date.setTime(Date.parse(date2));
var year2 = date.getFullYear();

var age = year2 - year1;
alert('Your age: '+ age);
Ответить с цитированием
  #7 (permalink)  
Старый 24.05.2008, 16:25
Интересующийся
Отправить личное сообщение для nameivan Посмотреть профиль Найти все сообщения от nameivan
 
Регистрация: 24.05.2008
Сообщений: 17

понятный для js это через "/" ?
Ответить с цитированием
  #8 (permalink)  
Старый 24.05.2008, 16:32
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Получается, что да. Там написано, что Date.parse() может парсить даты в формате "12-11-2008", но на практике new Date() возвращает invalid Date.
Ответить с цитированием
  #9 (permalink)  
Старый 24.05.2008, 17:06
Интересующийся
Отправить личное сообщение для nameivan Посмотреть профиль Найти все сообщения от nameivan
 
Регистрация: 24.05.2008
Сообщений: 17

понятно, спасибо всем кто помог в решении данного вопроса
Ответить с цитированием
  #10 (permalink)  
Старый 24.05.2008, 21:53
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
numer = eval(ddate+'-'+udate);
Неподражаемо!

Извините, что вмешался.
Ответить с цитированием
Ответ



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

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