Как сделать Flex вычитание даты и сложение - PullRequest
8 голосов
/ 24 июня 2010

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

Например: public var dateNow: Date = new Date ();

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

Спасибо !!!

Ответы [ 5 ]

9 голосов
/ 24 июня 2010

Для этого вы можете использовать конструктор 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.

3 голосов
/ 24 июня 2010

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

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

http://flexdateutils.riaforge.org/

0 голосов
/ 13 августа 2012

Используйте это:

var dObj:Date = new Date();

DateField_Now.formatString = DateField_LastWeek.formatString = "YYYY-MM-DD";

DateField_Now.selectedDate = dObj;

dObj["date"] += 7;
DateField_LastWeek.selectedDate = dObj;
0 голосов
/ 24 июня 2010

другая альтернатива - даты Питера для ленивых, я люблю это из CF http://blog.flexexamples.com/2007/08/24/date-math-for-lazy-people/

0 голосов
/ 24 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...