예제 #1
0
 /**
  * Calculating if an recurrent date is in the given period
  * @param Date Start date of the period
  * @param Date End date of the period
  * @param Date Start date of the Date Object
  * @param Date End date of the Date Object
  * @param integer Type of Recurrence
  * @param integer Times of Recurrence
  * @param integer Time of Recurrence
  * @return array Calculated Start and End Dates for the recurrent Event for the given Period
  */
 public function getRecurrentEventforPeriod($start_date, $end_date, $event_start_date, $event_end_date, $event_recurs, $event_times_recuring, $j)
 {
     //this array will be returned
     $transferredEvent = array();
     //create Date Objects for Event Start and Event End
     $eventStart = new w2p_Utilities_Date($event_start_date);
     $eventEnd = new w2p_Utilities_Date($event_end_date);
     //Time of Recurence = 0 (first occurence of event) has to be checked, too.
     if ($j > 0) {
         switch ($event_recurs) {
             case 1:
                 $eventStart->addSpan(new Date_Span(3600 * $j));
                 $eventEnd->addSpan(new Date_Span(3600 * $j));
                 break;
             case 2:
                 $eventStart->addDays($j);
                 $eventEnd->addDays($j);
                 break;
             case 3:
                 $eventStart->addDays(7 * $j);
                 $eventEnd->addDays(7 * $j);
                 break;
             case 4:
                 $eventStart->addDays(14 * $j);
                 $eventEnd->addDays(14 * $j);
                 break;
             case 5:
                 $eventStart->addMonths($j);
                 $eventEnd->addMonths($j);
                 break;
             case 6:
                 $eventStart->addMonths(3 * $j);
                 $eventEnd->addMonths(3 * $j);
                 break;
             case 7:
                 $eventStart->addMonths(6 * $j);
                 $eventEnd->addMonths(6 * $j);
                 break;
             case 8:
                 $eventStart->addMonths(12 * $j);
                 $eventEnd->addMonths(12 * $j);
                 break;
             default:
                 break;
         }
     }
     if ($start_date->compare($start_date, $eventStart) <= 0 && $end_date->compare($end_date, $eventEnd) >= 0) {
         // add temporarily moved Event Start and End dates to returnArray
         $transferredEvent = array($eventStart, $eventEnd);
     }
     // return array with event start and end dates for given period (positive case)
     // or an empty array (negative case)
     return $transferredEvent;
 }
예제 #2
0
$new_end->addMonths(-$scroll_date);
echo "f.project_start_date.value='" . $new_start->format(FMT_TIMESTAMP_DATE) . "';";
echo "f.project_end_date.value='" . $new_end->format(FMT_TIMESTAMP_DATE) . "';";
?>
        document.editFrm.display_option.value = 'custom';
        f.submit()
    }

    function scrollNext() {
        f = document.editFrm;
        <?php 
$new_start = new w2p_Utilities_Date($start_date);
$new_start->day = 1;
$new_end = new w2p_Utilities_Date($end_date);
$new_start->addMonths($scroll_date);
$new_end->addMonths($scroll_date);
echo "f.project_start_date.value='" . $new_start->format(FMT_TIMESTAMP_DATE) . "';";
echo "f.project_end_date.value='" . $new_end->format(FMT_TIMESTAMP_DATE) . "';";
?>
        document.editFrm.display_option.value = 'custom';
         document.editFrm.printpdf.value = "0";
         document.editFrm.printpdfhr.value = "0";
        f.submit();
    }

    function showThisMonth() {
        document.editFrm.display_option.value = "this_month";
        document.editFrm.printpdf.value = "0";
        document.editFrm.printpdfhr.value = "0";
        document.editFrm.submit();
    }
예제 #3
0
 /**
  * Tests addMonths when the number of months spans a year
  */
 public function testAddMonthsNegativeAcrossYear()
 {
     $date = new w2p_Utilities_Date('2010-01-01 00:00:00');
     $date->addMonths(-1);
     $this->assertEquals('2009-12-01 00:00:00', $date->getDate(DATE_FORMAT_ISO));
 }