Avatar billede dank Nybegynder
11. september 2003 - 19:50 Der er 10 kommentarer og
1 løsning

formatere mysql datetime række output

hvis jeg blot echo'er indholdet af en datetime række, så får f.eks. f.eks.

2003-09-11 18:45:34

Hvordan kan jeg formatere dette til

11. September 2003, kl. 18:45:34

eller noget lignende "læseligt" output.
Avatar billede TRoXa Novice
11. september 2003 - 19:54 #1
du burde bruge unix timestamps istedet

dvs du laver dit tidsfelt i tabellen om til int(12)

og tilføjer med date('U')

så kan du få det ud på den måde du vil fx date("d-m-Y H:i:s",$row["time"])
Avatar billede mjl Nybegynder
11. september 2003 - 19:55 #2
Hvis du havde brugt PHP's time() til din dato ville du ha' fået følgende - f.eks. 1063302833

Dette tal kunne hentes fra DB'en og formateres sådan...

$tal = det hentede;
$tal = date("d-m-Y H:i:s",$tal);
Avatar billede erikjacobsen Ekspert
11. september 2003 - 19:56 #3
Nu er der ikke stort begyndelsesbogstav i månedsnavne på dansk, så du mener vel

  11. september 2003, kl. 18:45:34

Mon ikke jeg har en stump kode liggende....
Avatar billede schaefner Juniormester
11. september 2003 - 19:57 #4
SELECT *,DATE_FORMAT(datofelt,'%e. %c %Y, kl. %T') AS dato
Avatar billede erikjacobsen Ekspert
11. september 2003 - 19:58 #5
Joh, jeg lavede engang denne her. Om PHP har fået nye funktioner, der kan
gøre det selv, ved jeg ikke. Jeg har ikke lige tidspunkt med, men vil du
selv prøve ... ?

function tildansk($d) {
  if (ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $d, $r)) {
    $yy=$r[1]; $mm=$r[2]; $dd=$r[3];
    $a=getdate(mktime(0,0,0,$mm,$dd,$yy));
    switch ($a["wday"]) {
      case 0: $ugedag='søn.'; break;
      case 1: $ugedag='man.'; break;
      case 2: $ugedag='tir.'; break;
      case 3: $ugedag='ons.'; break;
      case 4: $ugedag='tor.'; break;
      case 5: $ugedag='fre.'; break;
      case 6: $ugedag='lør.'; break;
    }
    switch ($mm) {
      case 1: $maaned='jan.'; break;
      case 2: $maaned='feb.'; break;
      case 3: $maaned='mar.'; break;
      case 4: $maaned='apr.'; break;
      case 5: $maaned='maj'; break;
      case 6: $maaned='jun.'; break;
      case 7: $maaned='jul.'; break;
      case 8: $maaned='aug.'; break;
      case 9: $maaned='sep.'; break;
      case 10: $maaned='okt.'; break;
      case 11: $maaned='nov.'; break;
      case 12: $maaned='dec.'; break;
    }
    return "$ugedag, d. ".($dd+0).". $maaned $yy";
  } else {
    showerror("Ulovligt datoformat: $d");
  }
}
Avatar billede schaefner Juniormester
11. september 2003 - 19:59 #6
Avatar billede dank Nybegynder
11. september 2003 - 20:18 #7
erikjacobsen> Er det næsten ikke nemmere jeg bruger time() når jeg indsætter? Det ser nemmere ud, da jeg *skal* have tidspunkt med.?
Avatar billede erikjacobsen Ekspert
11. september 2003 - 20:31 #8
det kommer an på om du vil have et umiddelbart læsbart format i feltet.
Skal du altid se på data gennem et script kan det jo være lidt ligemeget
Avatar billede dank Nybegynder
11. september 2003 - 20:41 #9
ja det er jo rigtigt.. selvom projektet er en lille "feber-redning" så er det ikke for sent at konverete rækken og benyyte timestamp istedet. :o)

Takker til alle. Opretter i forskellige point, så i kan få lidt cyberbananer for hjælpen.
Avatar billede mjl Nybegynder
12. september 2003 - 14:02 #10
Jeg behøver ikke points for min kommentar - måske de andre skulle ha'...
Avatar billede dank Nybegynder
19. september 2003 - 15:24 #11
...
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