Gå til innhold

Hjelp med kode til kalender


Anbefalte innlegg

Fant et fint kalenderskript her inne, som jeg sitter å mekker litt om. Dere kan se hvordan det tar seg ut her (på en testside jeg bruker): http://www.genialweb.com/kalender/

 

Det er en ting jeg sliter skikkelig med:

Hvis dere klikker på en dato ser dere det kommer opp f.eks. XXX 31 Januar 2007 (avhengig av hvem dag jeg velger). Hvordan i huleste får jeg skriptet til å vise navnet på den dagen jeg har valgt (slik at det f.eks blir Onsdag 31 Januar 2007)? Nå vises datoene jeg velger, men ikke navnet på dagen.

 

<?php
//Skrevet av Eirik Opsanger

$mnd = $_GET['m'];
$aar = $_GET['y'];

if($mnd == null) { $mnd = date("n"); }
if($aar == null) { $aar = date("Y"); }

if($mnd == 1) {
$mnd_f = 12;
$aar_f = $aar-1;

} else {
$mnd_f = $mnd-1;
$aar_f = $aar;
}
if($mnd == 12) {
$mnd_n = 1;
$aar_n=$aar+1;

} else {
$mnd_n = $mnd+1;
$aar_n=$aar;
}


if($mnd > 12 || $mnd <1 || (!is_numeric($mnd)) || $aar > 2100 || $aar < 1900 || (!is_numeric($aar))) {
$mnd = date("n");
$aar = date("Y");
}
$mnder  = array( 1=> "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember");
$dager  = array(1=> "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag");

$forste_dag = date(w, mktime(1,1,1,$mnd,1,$aar));
if($forste_dag == 0) { $forste_dag = 7; }

print("<h1>$mnder[$mnd] $aar</h1>\n<a href=\"?m=$mnd_f&y=$aar_f\">Forrige</a> - <a href=\"http://www.genialweb.com/kalender/\">HJEM</a> - <a href=\"?m=$mnd_n&y=$aar_n\">Neste</a>\n<br>\n<br>\n");

print("<table width=\"350\">");
//printe ut alle dagene i en uke
print("\n<tr>\n");
for($i=1; $i<=7; $i++) {
print("<td width=\"50\">$dager[$i]</td>");
}
print("\n</tr>");


//sjekke hvor mange dager måneden har
$ant_dager = (date(j, mktime(0,0,0,$mnd_n,-1,$aar))+1);

$j = 1;
print("\n<tr>\n");
//Skriver ut tomme celler før den 1. i måneden.
for($k=1;$k<$forste_dag;$k++) {
print("<td width=\"50\"> </td>");
$j++;
}
//Skriver ut alle datoer
for($i=1; $i<=$ant_dager; $i++) {

 print ("<td width=\"50\" align=\"right\"><a href=\"?d=$i&m=$mnd&y=$aar&kid=$i$mnd$aar\">$i</a></td>");

//Sjekker om det er nye uke
$j++;
if($j%7 == 1) { print("\n</tr>\n<tr>\n"); } 
}

//Skriver ut tomme celler etter den 31. i måneden
while($j%7 != 1) {
print("<td width=\"50\"> </td>");
$j++;
}

print("</tr>\n");
print("</table>\n");
?>
<p>
<?php 
$kidden = $_GET['kid'];
$dagen = $_GET['d'];

if ($kidden > "") {
echo"XXX $dagen $mnder[$mnd] $aar <br>";
}
else {
  $kidden = "Ingen dato valgt";
}


?>
<? echo $kidden; ?>.
</p>

Endret av abrj
Lenke til kommentar
Videoannonse
Annonse

Jeg vet ikke om dette er riktig, men du må vel lage en som henter ut dagen også, i stedet for bare måned og år?

 

$mnd = $_GET['m'];
$aar = $_GET['y'];
$dag = $_GET['d'];

// Er det ikke "d" man bruker for day da?

if($mnd == null) { $mnd = date("n"); }
if($aar == null) { $aar = date("Y"); }
if($dag == null) { $dag = date("d"); }

 

 

Og så må du jo selvfølgelig legge den på lenger ned et sted der du printer det ut...

Lenke til kommentar

Klarer ikke å få bundet at f.eks 25. januar 2007 er en Torsdag, mens f.eks 6. februar er en Tirsdag. Får med datoene, måneden og årene, men ikke navnet på dagen. I stedenfor at det bare står 25. januar 2007 vil jeg at det skal stå Torsdag 25. januar 2007 hvis dere skjønner.

Endret av abrj
Lenke til kommentar
Du må lage datoen til unix-format og bruke følgende dato-funksjon:

 

 

<?php

$dag = $_GET['d'];
$mnd = $_GET['m'];
$aar = $_GET['y'];

$unix-tid = mktime(1,0,0,$mnd,$dag,$aar);

print(dato($unix_tid));

?>

7790419[/snapback]

 

Var et par skrivefeil men når jeg bruker følgende kode:

<?php

$dag = $_GET['d'];
$mnd = $_GET['m'];
$aar = $_GET['y'];

$unix_tid = mktime(1,0,0,$mnd,$dag,$aar);

print(date($unix_tid));

?>

får jeg bare -1. Klikker jeg så på en dato kommer det en lang remse tall... Kan det være så vanskelig å få opp f.eks Onsdag hvis jeg klikker på en dag som er Onsdag, eller Søndag, hvis dagen jeg klikker på er Søndag?

Endret av abrj
Lenke til kommentar

Sorry, glemte jo dato-funksjonen:

 

function dato($tid_unix) {
$engelsk = array("January", "February", "March", "April", "May", "June", "July", "August", "October", "November", "September", "December", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$norsk = array("Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "Oktober", "November", "September", "Desember", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag");

return str_replace($engelsk, $norsk, strftime("%A %e. %B", $tid_unix));
}

 

Lim inne på toppen av dokumentet, så kaller du print(dato($unix_tid));

Endret av EirikO
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...