Avatar billede Slettet bruger
07. juli 2014 - 21:56 Der er 14 kommentarer og
1 løsning

Datetime til dansk dato

Jeg ville høre om nogen kender til en funktion, eller et script, der kan omskrive de datoer jeg har i min tabel til en dato/kl udskrift der ser ud som følgende eksempel:

Søndag d. 5 Maj kl. 19:00
Avatar billede Slettet bruger
07. juli 2014 - 22:26 #2
Tak for et hurtigt svar.

Jeg det fik jeg så ikke skrevet.
Har læst og læst i nu 4 timer.

Men uanset hvad jeg har prøvet, har jeg ikke kunne få datoen ud som jeg ønsker det.

Eller jo men det var et script der fyldte sindsygt meget og da jeg med en foreach hentede data ud fra en array, var det kun datoen for det første udtræk den kom rigtigt ud.

Så jeg må indrømme jeg er træt af at læse og læse, prøve og prøve, uden så meget som et lille lys punkt.
Nu har jeg slettet alt jeg har prøvet, og er helt ør i toppen, derfor skriver jeg her. :)
Avatar billede Slettet bruger
07. juli 2014 - 22:48 #3
Puha, det er træls at stirre sig blind i så lang tid.
Nu mangler jeg bare at få dage og mdr oversat.

<?php $date = date_create($games->gDate); ?>
<?php echo date_format($date, "l \d\. j F \k\l\. H:m"); ?>
Avatar billede jakobdo Ekspert
08. juli 2014 - 08:40 #4
<?php
$dato_fra_database = '2014-07-08 08:35';
$unixtime = strtotime($dato_fra_database);
setlocale (LC_ALL, 'da_DK.utf8'); //Kan også være: da_DK, da_DK.ISO_8859-1, da_DK.utf8, danish etc...
echo strftime('%A d. %e %B kl. %H:%M', $unixtime);
?>
Avatar billede Slettet bruger
08. juli 2014 - 10:51 #5
Nååå så var jeg ikke helt gal på den.
Havde også prøvet noget ala det der.
Jeg brugte (LC_ALL , 'danish') og strftime ('%A %e %B %H %M', $unix)

Jeg har så fundet ud af at jeg skal bruge %#d istedet for %e.

Det næste problem er så bare:
da_DK = giver et tomt felt.
da-DK = Dansk uden ÆØÅ
da_DK.utf8 = Engelsk sprog
da-DK.utf8 = Engelsk sprog
da_DK.ISO_8859-1 Engelsk sprog
da-DK.ISO_8859-1 Engelsk sprog
dansih = Dansk uden ÆØÅ

Kan de manglende ÆØÅ være pga jeg køre lokalt xampp?

Derudover, starter alle dage og mdr med småt.
Men det er et helt andet problem.
Avatar billede Slettet bruger
08. juli 2014 - 11:02 #6
Havde ikke lige adgang til et webhotel lige nu, men fik en kammerat til at teste det og det virker perfekt.

Smid et svar.

Lige et tillægs spørgsmål, jeg opretter det hvis det kan lade sig gøre ellers gider jeg ikke bruge tid på at oprette et nyt spørgsmål.

Kan det lade sig gøre at %A og %b får et stort forbogstav, uden at "d." og "kl." gør?
Avatar billede jakobdo Ekspert
08. juli 2014 - 11:09 #7
Du må evt. "snyde" lidt..

Udlæs dag og måned i egne variabler og lave en ucfirst() på den.
Avatar billede Slettet bruger
08. juli 2014 - 11:47 #8
Ja, det har jeg også overvejet.
Pt køre jeg med det hele i ucfirst() det ser ok ud, men ellers må jeg jo dele det op og sætte mdr i en også.

1000 tak for hjælpen. Det var rart at se, at jeg havde været inde på det rigtige, det var bare den %e der skulle udskiftes %#d.
Avatar billede jakobdo Ekspert
08. juli 2014 - 12:54 #9
Du kan også kigge på dette: http://stackoverflow.com/questions/10873562/strftime-make-first-letter-capital-uppercase-in-php

Som de siger, ugedage og måneder skrives jo normalt ikke med STORT i danmark.
Avatar billede Slettet bruger
08. juli 2014 - 15:40 #10
Jeg ved godt at det ikke er normalt at skrive dage og mdr med stort.

Hvis det er i en tekst som fx.

"Det var i mandags at vi gik ind i september."

Der synes jeg dumt og forkert ud, hvis de stod med stort der.

Men når man skriver datoen uden anden form for tekst før og efter:

"Mandag d. 5 Maj kl 15:30"

Så synes jeg det ser bedre ud når det står med stort. Det hjælper dog at "Mandag" er med stort:

"Mandag d. 5 maj kl 15:30"  frem for "mandag den 5 maj kl 15:30"

Men tak for hjælpen :)
Avatar billede jakobdo Ekspert
08. juli 2014 - 21:38 #11
Hvis du "kun" ønsker Mandag d. 5. maj...
Så kan ucfirst bruges på samlede streng.
Avatar billede Slettet bruger
08. juli 2014 - 21:46 #12
Jeps, som jeg skrev i #8, er det også det jeg gør, det er jo kosmetiske ting.
Det kan jeg altid lege med.
Avatar billede jakobdo Ekspert
08. juli 2014 - 21:51 #13
Fino.
Glemte at sige tak for point.
Avatar billede showsource Seniormester
10. juli 2014 - 19:15 #14
Bare en note:

// CONNECT TIL DB

mysql_query("SET lc_time_names='da_DK'") or die (mysql_error());

$tid = "2014-07-10 18:56:00"; // I stedet for feltnavn i DB

$sql = "SELECT DATE_FORMAT('".$tid."', '%W d. %e/%c, %Y')";

echo ucfirst(mysql_result(mysql_query($sql),0));


http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
Avatar billede showsource Seniormester
10. juli 2014 - 19:18 #15
Nå, ja,

$sql = "SELECT DATE_FORMAT('".$tid."', '%W d. %e/%c, kl. %H:%i')";
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