phpbar.de logo

Mailinglisten-Archive

[php] die letzten drei Monate ermitteln

[php] die letzten drei Monate ermitteln

Alexander Manhart php_(at)_phpcenter.de
Wed, 17 Oct 2001 10:10:36 +0200


hallo liste,

ich habe nun untenstehendes (mein) problem wie folgt gelöst u. bin damit
vorerst zufrieden:

function return_past_months($current_month, $current_year, $max)
{
 $months = array
 (
 1 => "Januar",
 2 => "Februar",
 3 => "März",
 4 => "April",
 5 => "Mai",
 6 => "Juni",
 7 => "Juli",
 8 => "August",
 9 => "September",
 10 => "Oktober",
 11 => "November",
 12 => "Dezember"
 );

 for($i = 1; $i <= $max; $i++) # schleife über die anzahl, die zurückgegeben
 {
  $month = $current_month - $i;
  $year = $current_year;
  $year = ($month < 1 ? $year-- : $year);
  $month = ($month < 1 ? $month + sizeof($months) : $month);
  $re_months[($i - 1)]["MONTH"] = $month;
  $re_months[($i - 1)]["YEAR"] = $year;
 }
 return $re_months;
}

$past_months = return_past_months($MONTH, $YEAR, 3);
# setlocale ("LC_TIME", "de_DE");

for ($i = 0; $i < sizeof($past_months); $i++)
{
 $aYear = $past_months[$i]["YEAR"];
 $aMonth = $past_months[$i]["MONTH"];
 $PAST_MONTHS .= "<a href='$PHP_SELF?MONTH=$aMonth&YEAR=$aYear'>".
  strftime("%B '%y", strtotime($aYear."-".$aMonth."-01"))."</a>";
 if ($i != count($past_amonths) - 1)
{
 $PAST_MONTHS .= "<br>";
 }
}

danke für eure hilfen, hat mir nachgeholfen!!

c ya
  Alexander M.


" > Am Montag, 15. Oktober 2001 12:28 schrieben Sie:
> > Aloha,
> >
> > > Von: Alexander Manhart[SMTP:misterelsa_(at)_counterstrike.de]
> > >
> > > ich bekomme mit einer funktion get_current_month das aktuelle monat
10.
> > > wie kann ich die vormonate dynamisch ermitteln? 9, 8 und 7. das ist
> > > eigentlich nicht ganz mein problem.
> > > sondern, wäre heute das monat z.b. 2, dann müsste die funktion 1, 12
und
> > > 11
> > > liefern!
> > >
> > > natürlich könnte ich mir ein array ()  mit allen monaten oder ein max.
> > > anzahl monate definieren und davon die berechnung aus starten.
> > >
> > > geht das aber auch über php funktionen? bzw. eine coole dynamische
> > > funktion,
> > > wo ich einstellen kann wieviele monate er mir  auflisten soll (statt
drei
> > > dann z.b. fünf...).
> >
> > Klar. Du musst als erstes die Klasse brain einbinden, ohne die geht das
> > nicht.
> >
> > require brain;  # http://dict.leo.org
> >
> > function return_x_month($current, $max) {
> >   $vormonate = array();
> >   for($i=0, $i <= $max, $i++) # schleife über die anzahl, die
zurückgegeben
> > werden soll
> >     $monat =  $current - $i - 1;    # einer der geuschten monate
> >     $monat = ( $monat  < 1 ? $monat + 12 : $monat );   # 12 dazu falls
> > negativ.
> >     $vormonate[] = $monat;
> >   }
> >   return $vormonate
> > }
> >
>
> funktioniert nicht bei $max > 12
>
>
> require brain;  # http://dict.leo.org
>
> function return_x_month($current, $max) {
>   $vormonate = array();
>   for($i=1, $i <= $max, $i++)
>     $monat =  $current - $i ;
>     while( $monat < 1 ) $monat += 12;
>     $vormonate[] = $monat;
>   }
>   return $vormonate
> }
> ..."



php::bar PHP Wiki   -   Listenarchive