Avatar billede morten_21 Nybegynder
10. maj 2004 - 16:57 Der er 7 kommentarer og
1 løsning

Format af DATE felt med php

Halløjsa..

Jeg har en db, hvor jeg regner lidt med datoen, og det fungerer bedst hvis DATE-feltet er i originalt (dvs. amerikansk) format. - men efter beregningerne vil jeg gerne udskrive datoen i alm. dansk format, og det har jeg lidt bøvl med.

Koden:
$result = mysql_query("SELECT id, dato, mere, antalpladser, antalbestilte, type, titel, TIME_FORMAT(tid, '%H:%m') AS tid FROM bestilling WHERE TO_DAYS(dato)>=TO_DAYS(NOW()) ORDER BY dato LIMIT 1") or die(mysql_error());

Jeg kan sagtens formattere datoen ligesom med "tid", men så virker select'en lidt sjovt.

Det jeg mangler er kort fortalt et stykke kode der tager $tid og ændrer det fra yyyy-mm-dd til dd/mm yyyy.

Eller endnu bedre, med januar, februar osv. istedet for mm.

Håber i kan hjælpe - på forhånd tak!
Avatar billede taskmgr Nybegynder
10. maj 2004 - 17:09 #1
Jeg er ikke sikker på om det kan gøres nemmer, men her er et bud:

<?
$tid = "2004-05-10";

$timestamp = strtotime($tid);
$arrDays = array(
    "Søndag",
    "Mandag",
    "Tirsdag",
    "Onsdag",
    "Torsdag",
    "Fredag",
    "Lørdag"
    );
$arrMonths = array(
    "",
    "januar",
    "februar",
    "marts",
    "april",
    "maj",
    "juni",
    "juli",
    "august",
    "september",
    "oktober",
    "november",
    "december"
    );

echo $arrDays[date("w", $timestamp)];
echo " d. ";
echo date("j", $timestamp) . ".&nbsp;" . $arrMonths[date("n", $timestamp)];
?>
Avatar billede taskmgr Nybegynder
10. maj 2004 - 17:10 #2
og så lige dette til sidst naturligvis:
echo "&nbsp;" . date("Y", $timestamp);
Avatar billede morten_21 Nybegynder
10. maj 2004 - 18:27 #3
Jep, det virker så med dags dato - den læser ikke den faktisk værdi af $tid, men udskriver bare Mandag d. 10. maj 2004.

Jeg har fjernet linjen
$tid = "2004-05-10";
men den er helt ligeglad med hvad $tid er?
Avatar billede morten_21 Nybegynder
10. maj 2004 - 18:29 #4
Daaamn jeg cykler rundt i mine variable! Min fejl - det er selvfølgelig $dato jeg skal bruge. Nu virker det.. tak for det :)
Avatar billede taskmgr Nybegynder
10. maj 2004 - 18:31 #5
Velbekomme :)
Avatar billede jakobdo Ekspert
10. maj 2004 - 20:02 #6
En lettere løsning ville være:
$q = mysql_query("SELECT UNIX_TIMESTAMP(dato) AS unix LIMIT 1");
$r = mysql_fecth_assoc($q);
setlocale(LC_TIME, 'da_DK.ISO_8859-1');
echo strftime('%A d. %e. %B %Y', $r['unix']);
Avatar billede morten_21 Nybegynder
10. maj 2004 - 20:08 #7
Wow - okay..

Tak for det jakobdo.. nu *virker* det som det er, så jeg venter lige med at eksperimentere med det ;)
Avatar billede jakobdo Ekspert
10. maj 2004 - 20:09 #8
Bare i orden, Morten! :o)
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