2015-07-09 2 views
2

i Хочу добавить дни к дате, а затем увеличить эту дату в течение промежутка времени. У меня проблема с тем же временным интервалом, но у меня проблема с попыткой сделать инкремент даты должным образом. Я знаю, что getDate() + 7 неверен, и я бы не хотел использовать плагин. Есть идеи? основная проблема заключается в том, что если даты на протяжении круга в год будут всегда занимать текущий год, и я думаю, что это связано с тем, как я создаю дату. Если то, что я прошу, не ясно, я могу ответить на ваши вопросы.Добавьте дни до даты в течение лет с шагом

var last, packEndDate, packStartDate; 

while (i < frequencyValue) { 
    packStartDate = new Date(); 
    packEndDate = new Date(); 
    debugger; 
    if (isWeek) { 
    packStartDate.setDate(startDate.getDate() + (7 * i)); 
    packEndDate.setDate(packStartDate.getDate() + 7); 
    } else { 
    packStartDate.setDate(startDate.getDate() + (30 * i)); 
    packEndDate.setDate(packStartDate.getDate() + 30); 
    } 
    last = frequencyValue - 1; 
    if (i === last) { 
    packEndDate = endDate; 
    } 
} 
i++; 
} 

ответ

1

Изменен мой код, чтобы он выглядел следующим образом.

    packagesToAdd = [] 
        packStartDate = new Date() 
        packEndDate = new Date() 
        while i < frequencyValue 
         if isWeek 
          toIncrementWeekly = 7 * i 
          offset = toIncrementWeekly * 24 * 60 * 60 * 1000 
          packStartDate = new Date(startDate.getTime() + offset) 
          packEndDate.setDate(packStartDate.getDate() + 7) 
         else 
          toIncrementMonthly = 30 * i 
          offset = toIncrementMonthly* 24 * 60 * 60 * 1000 
          packStartDate = new Date(startDate.getTime() + offset) 
          packEndDate.setDate(packStartDate.getDate() + 30) 

         last = frequencyValue - 1 
         if i == last 
           packEndDate = endDate 
         number = ('0' + i).slice(-2) 
         i++ 

Работа замечательная. Спасибо dmlittle

1

Вы можете создавать новые объекты Date в зависимости от количества миллисекунд с 1 января 1970 года, 00:00:00 по UTC. Поскольку количество миллисекунд в минуту, час, день, неделя установлены, мы можем добавить фиксированную сумму к текущему времени, чтобы получить время в будущем. Мы можем забыть о том, в какой день месяца, или год, как это присуще количеству миллисекунд, которые прошли с 1970 года.

Я не уверен, что вы пытаетесь сделать в цикле, но если вы хотите увеличить определенный день на определенное количество дней, которое вы можете сделать следующее:

var numberOfDaysToIncrement = 7; 
var offset = numberOfDaysToIncrement * 24 * 60 * 60 * 1000; 

var date = new Date(); 
var dateIncremented = new Date(date.getTime() + offset); 
+0

hrmm проверит его – CodeGamer

+0

Хорошо работает в конце этого. – CodeGamer

1

использование ExtJS

использования добавить метод в объекте Ext.Date. ссылка: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.Date-method-add

например: Ext.Date.add (новая дата ('10/29/2006 '), Ext.Date.DAY, 5);

+0

Я использую эту структуру, и это болезненно. – CodeGamer

+0

очень легко. потребуется некоторое время, чтобы принять его. хорошо используйте api docs. – Raghavendra

+0

легко, но одновременно это боль. – CodeGamer

Смежные вопросы