Пример #1
0
 /**
  * Converts the date to the specified no of months from the given date
  *
  * To subtract months use a negative value for the '$pn_months'
  * parameter
  *
  * @param int $pn_months months to add
  *
  * @return   void
  * @access   public
  * @since    Method available since Release 1.5.0
  */
 function addMonths($pn_months)
 {
     list($hs_year, $hs_month, $hs_day) = explode(" ", Date_Calc::addMonths($pn_months, $this->day, $this->month, $this->year, "%Y %m %d"));
     $this->setLocalTime($hs_day, $hs_month, $hs_year, $this->hour, $this->minute, $this->second, $this->partsecond);
 }
Пример #2
0
 /**
  * Returns date of the first day of the month in the number of months
  * from the given date
  *
  * @param int    $months the number of months from the date provided.
  *                        Positive numbers go into the future.
  *                        Negative numbers go into the past.
  *                        0 is the month presented in $month.
  * @param string $month  the month, default is current local month
  * @param string $year   the year in four digit format, default is the
  *                        current local year
  * @param string $format the string indicating how to format the output
  *
  * @return   string     the date in the desired format
  * @access   public
  * @static
  * @since    Method available since Release 1.4.4
  */
 function beginOfMonthBySpan($months = 0, $month = 0, $year = null, $format = DATE_CALC_FORMAT)
 {
     if (is_null($year)) {
         $year = Date_Calc::dateNow('%Y');
     }
     if (empty($month)) {
         $month = Date_Calc::dateNow('%m');
     }
     return Date_Calc::addMonths($months, Date_Calc::getFirstDayOfMonth($month, $year), $month, $year, $format);
 }
Пример #3
0
 /**
  * Returns an array of dates for a monthly schedule (like subscription)
  * @param $startDate date('Y-m-d')
  * @param int number of months
  * @param bool (optional, default true) include start date in the schedule
  */
 public static function monthlySchedule($startDate, $num, $inclstart = true)
 {
     $startTime = strtotime($startDate);
     $startDay = date('d', $startTime);
     $startMonth = date('m', $startTime);
     $startYear = date('Y', $startTime);
     $startoffset = $inclstart ? 0 : 1;
     for ($i = $startoffset; $i < $num; $i++) {
         $dt[] = Date_Calc::addMonths($i, $startDay, $startMonth, $startYear, '%Y-%m-%d');
         // Correcting not valid dates (e.g. february 30, june 31)
         /*       $tempdt = date('d',strtotime($dt[$i]));
                $numd = date('t',strtotime($dt[$i]));
                if($tempdt>$numd) {
                  $dt[$i] = date('Y',strtotime($dt[$i])).'-'.date('m',strtotime($dt[$i])).'-'.$numd;
                }*/
     }
     return $dt;
 }