Как сделать вычет даты Flex и дополнение

В гибком проводе я пытаюсь сделать вычет даты и дополнение, но не мог найти способ сделать это.

например: общедоступная дата var dateNow:Date=new ();

Как я могу получить Дату на 3 месяца ранее, чем dateNow?

Спасибо!!!

8
задан leon 23 June 2010 в 23:54
поделиться

4 ответа

Для этого можно использовать конструктор Date. Первый аргумент конструктора Date занимает либо год, либо метку времени. Можно использовать свойство Date.time, чтобы получить метку времени из объекта даты. Получив метку времени, вы можете добавить/вычесть из нее некоторое количество секунд, а затем передать ее в new Date(timestamp), и вы получите совершенно новую дату, которая представляет новую метку времени.

Редактировать; Как отметил комментатор, манипулирование временем может быть не лучшим способом. Но вы все равно можете использовать конструктор Date следующим образом:

var now:Date = new Date();
var threeMonthsAgo = new Date(now.fullYear, 
                              now.month - 3,  
                              now.date, 
                              now.hour, 
                              now.minute, 
                              now.second, 
                              now.millisecond);

Конструктор Date достаточно умен, чтобы работать с отрицательными значениями или значениями больше 11.

9
ответ дан 5 December 2019 в 14:00
поделиться

Попробуйте библиотеку с открытым исходным кодом DateUtils.

Я часто использую его в календаре Flextras, и он отлично работает. Я почти уверен, что есть метод DateAdd. Чтобы получить дату на 3 месяца раньше, вы можете просто добавить отрицательное число 3.

http://flexdateutils.riaforge.org/

3
ответ дан 5 December 2019 в 14:00
поделиться

Еще одна альтернатива - «Свидания Питера» для ленивых людей, мне нравится, что это приходит от CF http://blog.flexexamples.com/2007/08/24/date-math-for-lazy-people/

0
ответ дан 5 December 2019 в 14:00
поделиться

Я не верю, что есть встроенная арифметика даты. Даже официальная документация Adobe для класса Date создает математические вычисления даты с нуля при его использовании.

Взгляните на ссылку выше. В документации создается класс DateMath со статическими методами, чтобы делать то, что вы хотите. Учитывая это, я не уверен, почему они не сделали это частью стандарта, но так оно и есть. Я предлагаю скопировать его оттуда и расширить.

0
ответ дан 5 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: