Avatar billede allandk Nybegynder
26. september 2003 - 10:01 Der er 3 kommentarer og
1 løsning

Månedsoversigt - kalenderspørgsmål

Er der nogen der kan guide mig i gang med links eller konkrete eksempler på en månedsoversigt?

Det jeg gerne vil vise på siden er: månedens navn, ugenummer og de enkelte dage. Og i den avancerede funktion skal man kunne klikke på en "sidste måned" og "Næste måned". Kan det lade sig gøre, uden at man skal ud i nogle af de større og mere komplekse kalenderløsninger på fx Hotscripts?
Avatar billede schaefner Juniormester
26. september 2003 - 11:12 #1
Avatar billede kjetilh Nybegynder
26. september 2003 - 13:17 #2
define ('ADAY', (60*60*24));
$datearray = getdate();
       
if ( $month=="")
$month = $datearray['mon'];
if ( $year=="")
$year = $datearray['year'];
       
$start= mktime(0,0,0,$month,1,$year);
$firstdayarray = getdate($start);
       
$months = Array('January','February','March','April','May','June',
                'July','August','September','October','November','December');
$days = Array('Ma','Tu','We','Th','Fr','Sa','Su');
   
$print_month = $months[$month-1];
if ( $month == 12)
{
  $nextmonth      = 1;
  $nextyear      = $year+1;
  $previousmonth  = $month-1;
  $previousyear  = $year;
}
elseif ( $month == 1)
{
  $previousmonth  = 12;
  $previousyear  = $year-1;
  $nextmonth      = $month+1;
  $nextyear      = $year;
}
else
{
  $previousmonth  = $month-1;
  $previousyear  = $year;
  $nextmonth      = $month+1;
  $nextyear      = $year;
}   
echo "<table cellSpacing=0 cellPadding=0 width='100%' border=0>
      <tr><td align=left><a href='?month=$previousmonth&year=$previousyear'><<</a></td>
      <td align=center>$print_month $year</td>
      <td align=right><a href='?month=$nextmonth&year=$nextyear'>>></a></td></tr>
      <tr><td colspan=3><table cellSpacing=0 cellPadding=0 width='100%' border=0><tr>\n";
    foreach($days as $day)
      echo "<td align=center>$day</td>\n";
    echo "</tr><tr>\n"; 
       
    for( $count=0;$count<(6*7);$count++)
    {
        $dayarray = getdate($start);       
        if((($count) % 7) == 0)
        {
            echo "</tr><tr>";
        }
        if($count < ($firstdayarray['wday']-1) || $dayarray['mon'] != $month)
        {
            echo "<td></td>";             
        }
        else
        {
            if($dayarray['mday'] == $datearray['mday'] AND $firstdayarray['mon'] == $datearray['mon'])
            {
                echo "<td align=center>$dayarray[mday]</td>\n";
                $start += ADAY;
            }
            else
            {
                echo "<td align=center>$dayarray[mday]</td>\n";
                $start += ADAY;
            }
        }
    }
    echo "</tr></table>\n</table>\n\n";
Avatar billede allandk Nybegynder
26. september 2003 - 14:45 #3
Schaefners forslag er nærmest det jeg kan bruge.

>> schaefner: ved du, hvordan jeg ændre løkken så dagene ikke listes horisontalt, men vertikalt hele måneden igennem?

Altså ikke: man - tirs - ons - tors - fre - lør - søn
Men:
man
tirs
ons
tors
fre
lør
søn
man
tirs
ons
tors
fre
lør
søn
man
tirs
ons
tors
fre
lør
søn
man
tirs
ons
tors
fre
lør
søn

og så videre...
Avatar billede allandk Nybegynder
19. januar 2004 - 16:04 #4
Lukketid? Giv lyd, hvis I vil have point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester