Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.10.2007, 16:41
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 1  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Question Как сравнить даты?

Привет. Подскажите подалуйста, как во флэше можно сравнить даты. Например в текстовое окно вводим 27.10.2007 - и если эта дата меньше определенной, то выполняется одно действие, если больше - другое. Думаю должно быть что-то такое:
Код:
function sravn (){
  if (a >= b) {
    trace ("один")
  } else {
    trace ("два")
  }
}
Где a - дата, которую мы водим
b - дата, с которой надо сравнить.

Старый 27.10.2007, 17:23
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Смотрим в хелпе Date.
Вам надо перегнать дату в стандартный формат ( getTime() ) и сравнить две цифры.

Старый 27.10.2007, 17:44
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 3  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
только 27.10.2007 всегда будет больше чем 26.11.2007
__________________
Free-lance | Twitter | Me

Старый 27.10.2007, 17:49
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 4  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от screamge
только 27.10.2007 всегда будет больше чем 26.11.2007
с чего бы это?
Код:
 
var d1:Date = new Date( 2007, 10, 27 );
var d2:Date = new Date( 2007, 11, 26 );
trace( d1.getTime() > d2.getTime() );
Осталось отпарсить данные в текстовом поле, определить год, месяц и день.
Берем строку, split по разделителю..
Код:
var str = '2007,11,26';
trace( makeDate( str ) );

function makeDate( s:String ):Date{
	var arr:Array = s.split(',');
	return new Date( Number( arr[0] ), Number( arr[1] ), Number( arr[2] ) );
}


Последний раз редактировалось Kikasso; 27.10.2007 в 17:57.
Старый 27.10.2007, 18:00
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 5  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Я вообще-то ответ на сообщение автора написал .
__________________
Free-lance | Twitter | Me

Старый 27.10.2007, 18:08
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от screamge
Я вообще-то ответ на сообщение автора написал .
упс. сорри ))
Ну делов-то: цифры переставить.
Код:
return new Date( Number( arr[2] ), Number( arr[1] ), Number( arr[0] ) );

Старый 27.10.2007, 18:15
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 7  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Цитата:
только 27.10.2007 всегда будет больше чем 26.11.2007
Почему? 26.11.2007 вернет в милисекундах больше чем 27.10.2007. Или я что-то не догоняю?

Старый 27.10.2007, 18:22
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 8  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
getTime сработает правильно, а вот ваш код из первого поста — нет. О чём собственно я и написал.

Код:
var one:Date = new Date (27,10,2007);
var two:Date =  new Date (26, 11, 2007);

if (one > two){
	trace ('trace');
}
__________________
Free-lance | Twitter | Me

Старый 27.10.2007, 18:30
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 9  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Хм... Странно... Почему-то метод getTime() возвращает отрицательные результаты.
screamge и Kikasso, спасибо большое!

Старый 27.10.2007, 18:34
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 10  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от Волгоградец
Хм... Странно... Почему-то метод getTime() возвращает отрицательные результаты.
для дат раньше чем 1970 год. Определитесь с форматом ввода.

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.