Avatar billede sbay Nybegynder
20. december 2006 - 13:26 Der er 11 kommentarer

dato til måned og dag

Hejsa

Jeg har søgt lidt her på eksperten, men kan ikke få det til at virke! Jeg vil gerne have dag og månedsnavn vist for en dato hentet ud af min database. Hvad er der galt?
<body>
            <?php
            include("forbindelse");
            $SQL = "SELECT * FROM Events ORDER BY EventID DESC";
            $resultat = mysql_query($SQL);
            while ($row = mysql_fetch_array($resultat)) {
              $EventID = $row['EventID'];
              $EventHeading = $row['EventHeading'];
              $EventDescription = $row['EventDescription'];
              $EventDate = $row['EventDate'];
              $EventTime1 = $row['EventTime1'];
              $EventTime2 = $row['EventTime2'];
            // Echo $EventDate . "<BR>".$EventTime1." - ".$EventTime2;
             
              echo "<br>";
$month[1] = "januar";
$month[2] = "februar";
$month[3] = "marts";
$month[4] = "april";
$month[5] = "maj";
$month[6] = "juni";
$month[7] = "juli";
$month[8] = "august";
$month[9] = "september";
$month[10] = "oktober";
$month[11] = "november";
$month[12] = "december";

$ugedag[1] = "Mandag";
$ugedag[2] = "Tirsdag";
$ugedag[3] = "Onsdag";
$ugedag[4] = "Torsdag";
$ugedag[5] = "Fredag";
$ugedag[6] = "Lørdag";
$ugedag[7] = "Søndag";

$dato = $EventDate;
echo "XX".$dato."XX";

$dag  = substr($dato, 8, 2);
$mdr  = substr($dato, 5, 2);
$aar  = substr($dato, 0, 4);

echo "splittet=".$dag."|-|".$mdr."|-|".$aar."<br>";

$tid = mktime(0, 0, 0, $mdr, $dag, $aar);
echo "<br>tid".$tid."<br>";
echo date("$ugedag[$dag]", $tid) ." ".date("d", $tid) . ". " . date("$month[$mdr]", $tid)." ". $aar;
}
?>
</body>
Avatar billede showsource Seniormester
20. december 2006 - 14:48 #1
Hvilken type er feltet "EventDate" i din tabel?
Avatar billede sbay Nybegynder
20. december 2006 - 14:52 #2
Det er typen date!
Avatar billede showsource Seniormester
20. december 2006 - 15:08 #3
Så kan du gøre det i din query:

$days = mysql_query("SELECT DATE_FORMAT(EventDate, '%w') as dag, DATE_FORMAT(EventDate, '%c') as maaned FROM Events ORDER BY EventID DESC") or die (mysql_error());

Så skal du blot ændre dit array med ugedage til at starte fra 0

$ugedag = array("Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag");

$month[1] = "januar";
$month[2] = "februar";
$month[3] = "marts";
$month[4] = "april";
$month[5] = "maj";
$month[6] = "juni";
$month[7] = "juli";
$month[8] = "august";
$month[9] = "september";
$month[10] = "oktober";
$month[11] = "november";
$month[12] = "december";


while($d = mysql_fetch_array($days)) {

echo"<br />". $ugedag[$d["dag"]] ." - ". $month[$d["maaned"]];

}
Avatar billede showsource Seniormester
20. december 2006 - 15:09 #4
Ups, ugedage skal starte med søndag! :O)
Avatar billede sbay Nybegynder
20. december 2006 - 15:53 #5
Skulle man så ikke kunne gøre følgende:
$days = mysql_query("SELECT DATE_FORMAT(EventDate, '%w') as dag, DATE_FORMAT(EventDate, '%c') as maaned, EventDate as dato, EventHeading as overskrift, EventDescription as beskrivelse  FROM Events ORDER BY EventID DESC") or die (mysql_error());

$ugedag = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag");

$month[1] = "januar";
$month[2] = "februar";
$month[3] = "marts";
$month[4] = "april";
$month[5] = "maj";
$month[6] = "juni";
$month[7] = "juli";
$month[8] = "august";
$month[9] = "september";
$month[10] = "oktober";
$month[11] = "november";
$month[12] = "december";

while($d = mysql_fetch_array($days)) {
echo "<br> dato".$dato;
echo $beskrivelse;
$dagx  = substr($dato, 8, 2);
$aar  = substr($dato, 0, 4);

echo"<br />". $ugedag[$d["dag"]] ." ".$dagx." - ". $month[$d["maaned"]]." ".$aar;
echo "<br>Overskrift: ".$overskrift;
echo "<br>Beskrivelse: ".$beskrivelse;
}
Avatar billede showsource Seniormester
20. december 2006 - 16:13 #6
Well, du kan jo prøve! :O)
Men du kan også prøve med:

DATE_FORMAT(dato, '%w %d %c %Y') as datoen

i stedet for.

Og i din while, så bruge:

$danish = explode(" ", $d["datoen"]);

echo"<br />". $ugedag[$danish[0]] ." d. ". $danish[1] ." ". $month[$danish[2]] ." ". $danish[3];
Avatar billede showsource Seniormester
20. december 2006 - 16:14 #7
hmm, dato er navnet på feltet i min tabel!
Skal jo så være EventDate hos dig
Avatar billede showsource Seniormester
20. december 2006 - 16:16 #8
Avatar billede Slettet bruger
20. december 2006 - 16:21 #9
I det hele taget, så ville jeg også lave månederne ligesom showsource skrev med ugedagen.
$month = array("januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "november", "december");
Avatar billede sbay Nybegynder
20. december 2006 - 21:48 #10
Så langt så godt!

To ting. Kan man undgå at d. 3 bliver til 03???

Hvordan får jeg hentet Eventheading med i samme SQL-kald?

$days = mysql_query("SELECT DATE_FORMAT(EventDate, '%w %d %c %Y') as datoen, EventHeading as overskrift, EventDescription as beskrivelse  FROM Events ORDER BY EventID DESC") or die (mysql_error());

Tirsdag d. 12 december 2006
Overskrift:
Beskrivelse:
Søndag d. 03 december 2006
Overskrift:
Beskrivelse:
Avatar billede showsource Seniormester
21. december 2006 - 05:44 #11
1. Bruge %e i stedet for %d

2.

$days = mysql_query("SELECT DATE_FORMAT(EventDate, '%w %e %c %Y') as datoen, EventHeading as overskrift, EventDescription as beskrivelse  FROM Events ORDER BY EventID DESC") or die (mysql_error());

while($d = mysql_fetch_array($days)) {
$danish = explode(" ", $d["datoen"]);

echo"<br />\r\n";
echo $ugedag[$danish[0]] ." d. ". $danish[1] ." ". $month[$danish[2]] ." ". $danish[3] ."<br />\r\n";

echo $d["overskrift"] ."<br />\r\n";
echo $d["beskrivelse"] ."<br />\r\n";

}
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

IT-JOB

Rambøll Management Consulting

Senior AI Engineer

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst

JP/Politikens Hus

Digital Workplace Supporter
Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging