Avatar billede hypofysen Nybegynder
27. oktober 2008 - 13:42 Der er 7 kommentarer og
1 løsning

knap til næste måned?

hvordan laver jeg en knap til næste og forrige måned i dette script?

<?php
//This gets today's date
$date =time () ;

//This puts the day, month, and year in seperate variables
$day = date('d', $date) ;

$month = date('m', $date) ;

$year = date('Y', $date) ;

//Here we generate the first day of the month
$first_day = mktime(0,0,0,$month, 1, $year) ;

//This gets us the month name
$title = date('F', $first_day) ;

//Here we find out what day of the week the first day of the month falls on
$day_of_week = date('D', $first_day) ;

//Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero
switch($day_of_week){
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}

//We then determine how many days are in the current month
$days_in_month = cal_days_in_month(0, $month, $year) ;

//Here we start building the table heads
echo "<table border=1 width=294>";
echo "<tr><th colspan=7> $title $year </th></tr>";
echo "<tr><td width=42>S</td><td width=42>M</td><td width=42>T</td><td width=42>W</td><td width=42>T</td><td width=42>F</td><td width=42>S</td></tr>";

//This counts the days in the week, up to 7
$day_count = 1;

echo "<tr>";
//first we take care of those blank days
while ( $blank > 0 )
{
echo "<td></td>";
$blank = $blank-1;
$day_count++;
}

//sets the first day of the month to 1
$day_num = 1;

//count up the days, untill we've done all of them in the month
while ( $day_num <= $days_in_month )
{
echo "<td> $day_num </td>";
$day_num++;
$day_count++;

//Make sure we start a new row every week
if ($day_count > 7)
{
echo "</tr><tr>";
$day_count = 1;
}
}

//Finaly we finish out the table with some blank details if needed
while ( $day_count >1 && $day_count <=7 )
{
echo "<td> </td>";
$day_count++;
}

echo "</tr></table>";
?>
Avatar billede w13 Novice
27. oktober 2008 - 14:01 #1
Hvor godt er du inde i PHP? Jeg kan godt guide dig igennem det, men har ikke tid til at lave det for dig.
Avatar billede hypofysen Nybegynder
27. oktober 2008 - 14:18 #2
har ikke før lavet noget med date funktionen, men ellers går det ok, vil egentlig også helst bare ha en guide til hvordan det skal gøres, ellers lærer jeg det jo aldrig....
Avatar billede w13 Novice
27. oktober 2008 - 14:25 #3
Altså disse linjer henter dag, måned og år ud fra i dags dato:

//This puts the day, month, and year in seperate variables
$day = date('d', $date) ;

$month = date('m', $date) ;

$year = date('Y', $date) ;

Så de er jo fine nok, når brugeren kommer ind på siden - men når han vælger næste/forrige måned, skal denne jo skifte.

Derfor skal de hente fra f.eks. en querystring - og hvis der ikke er querystrings kan de hente i dags dato, som de gør nu:

//This puts the day, month, and year in seperate variables

$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);

if (isset($_GET['day'])) {
  $day = $_GET['day'];
}

if (isset($_GET['month'])) {
  $month = $_GET['month'];
}

if (isset($_GET['year'])) {
  $year = $_GET['year'];
}

Så du kan jo starte med at prøve at ændre det. Så kan du f.eks. skrive disse querystrings op i adressen:

?day=3&month=4&year=2010

Og så se, om den viser 3/4/10.
Avatar billede hypofysen Nybegynder
27. oktober 2008 - 14:31 #4
Det virker fint!
Så skal jeg vel bare + med 1 ved tryk på næste så længe m er mindre end eller = 12 og ellers sætte m til 1 og ligge 1 til året
Avatar billede w13 Novice
27. oktober 2008 - 14:33 #5
Lige præcis. =)

Dvs. du skal generere nogle links, som f.eks. lægger en til måned (og evt. år) eller gør det samme, hvor der bare trækkes fra.
Avatar billede hypofysen Nybegynder
27. oktober 2008 - 15:01 #6
tusind tak, det virker perfekt nu, smid et svar
Avatar billede w13 Novice
27. oktober 2008 - 15:02 #7
;)
Avatar billede w13 Novice
27. oktober 2008 - 15:13 #8
Tak for points!
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