Avatar billede cronaldo Nybegynder
02. februar 2005 - 21:37 Der er 23 kommentarer og
1 løsning

Formater en dato fra en database? SVAR BEHØVES HURTIGT, Tak

Hej, hvordan "formaterer"(ANER IKKE HVAD JEG SKAL KALDE DET) jeg en dato som jeg henter fra en MySQL database, feltets tyepo er DATETIME.

$dato = $data[dato];
det er den jeg bruger til at hente datoen ud, og dermed også den jeg skal have "formateret"

På forhånd tak!
Avatar billede scaniav8 Nybegynder
02. februar 2005 - 21:53 #1
<?php
// Assuming today is: March 10th, 2001, 5:16:18 pm

$today = date("F j, Y, g:i a");                // March 10, 2001, 5:16 pm
$today = date("m.d.y");                        // 03.10.01
$today = date("j, n, Y");                      // 10, 3, 2001
$today = date("Ymd");                          // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');  // It is the 10th day.
$today = date("D M j G:i:s T Y");              // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');    // 17:03:17 m is month
$today = date("H:i:s");                        // 17:16:17
?>



// Fra php.net :)
Avatar billede jakobdo Ekspert
02. februar 2005 - 21:57 #2
Du kan også lade mysql gøre det for dig:

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'

Mere info: http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Avatar billede cronaldo Nybegynder
02. februar 2005 - 21:59 #3
Ok, hvad med noget forklaring, og Scaniav8 jeg ser ikke hvor i det der at du includerer min $dato ?
Avatar billede rasher Nybegynder
02. februar 2005 - 22:02 #4
Du kan også gøre det i din sql query:

SELECT DATE_FORMAT(dato, "%Y-%m-%d %H:%i:%s") as dato_format FROM db

Se http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html for flere eksempler og format-strenge.
Avatar billede cronaldo Nybegynder
02. februar 2005 - 22:07 #5
Hmm ... i får noget mere:

$dato = $data[dato];
og den måde det skal se ud på: Mandag d. 1. Januar 2005 09:15:35 << SÅDAN! .. Kan I lave det, bare PHP, simpelt, så JEG fatter det? ;o)
Avatar billede jakobdo Ekspert
02. februar 2005 - 22:08 #6
Du skal lave det sådan her:
SELECT DATE_FORMAT(dato, "%Y-%m-%d %H:%i:%s") as dato_format FROM db

og så istedet for at sætte:

$dato = $data[dato];

skal du bruge:

$dato = $data[dato_format];
Avatar billede scaniav8 Nybegynder
02. februar 2005 - 22:11 #7
$dato = $data[dato];
$dato = date("F den. j Y H:i:s");

prøv den
Avatar billede cronaldo Nybegynder
03. februar 2005 - 22:04 #8
Jakobdo, hvor skal jeg sætte "SELECT DATE_FORMAT" ? jeg har jo allerede hentet ALT info ud fra en db, så hvor skal jeg sætte det ind ?
Avatar billede jakobdo Ekspert
03. februar 2005 - 22:06 #9
Så skal du bruge scaniav8's løsning:
$dato = $data[dato];
$dato = date("F den. j Y H:i:s");

Min løsning skal tilføjes i din sql!
Avatar billede cronaldo Nybegynder
03. februar 2005 - 22:31 #10
jamen scaniav8's løsning skriver tiden lige nu, det skal være tiden der er angivet i $dato ..
Avatar billede rasher Nybegynder
04. februar 2005 - 01:42 #11
Så prøv med:

$dato = date("F den. j Y H:i:s", strtotime($data['dato']));

(strtotime omformer $data['dato'] til et unix-timestamp)
Avatar billede cronaldo Nybegynder
15. februar 2005 - 19:02 #12
RAsher, det der udskriver datoen idag, i øvrigt på en grim måde!
Avatar billede rasher Nybegynder
15. februar 2005 - 19:16 #13
Formatet har du ikke sagt noget om - kig på http://dk.php.net/date for at finde ud at hvordan dit format skal se ud eller skriv hvordan du vil have datoen udskrevet.

Mit forslag udskriver den dato som $data['dato'] indeholder.
Avatar billede sw_red_6 Nybegynder
15. februar 2005 - 19:19 #14
prøv med det her. Jeg er ikke sikker på om det virker når du har DATETIME som datatype, men prøv.
strftime("%A d. %d.%B %Y kl. %H:%M:%S", $data[dato]);
Avatar billede cronaldo Nybegynder
16. februar 2005 - 10:27 #15
Tjaa, den er næsten rigtig, det eneste fejl er at den skriver dag/dato og klokken forkert :P ... men formatet er der da ;) - svar til sw_red_6
Avatar billede cronaldo Nybegynder
16. februar 2005 - 10:28 #16
Jeg vil bare have det udskrevet fx sådan her: 06/02-2005 10:15:35 .. og formatet er datetime !!
Avatar billede jakobdo Ekspert
16. februar 2005 - 10:49 #17
Prøv denne:

$dato = $data[dato];
echo strftime("%d/%m-%Y %T",$dato);
Avatar billede jakobdo Ekspert
16. februar 2005 - 10:50 #18
Og måske du heller skal bruge denne:
$dato = $data[dato];
echo strftime("%d/%m-%Y %T",strtotime($dato));
Avatar billede cronaldo Nybegynder
16. februar 2005 - 11:59 #19
Jakobdo, den nederste virker upåklageligt, tusind tak!!!!!
Og så lige nu når forummet også er blevet færdigt ! En glædens dag!
Avatar billede cronaldo Nybegynder
16. februar 2005 - 11:59 #20
Også tak til ALLE jer andre!
Avatar billede cronaldo Nybegynder
16. februar 2005 - 12:00 #21
Jeg kan ikke give dig point (endnu), jakobdo ?! dit navn står der ikke? :S
Avatar billede jakobdo Ekspert
16. februar 2005 - 12:48 #22
Svar...
Avatar billede cronaldo Nybegynder
16. februar 2005 - 14:17 #23
sådan :)
Avatar billede jakobdo Ekspert
16. februar 2005 - 14:24 #24
Takker!
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