Avatar billede latrell Nybegynder
16. november 2006 - 15:08 Der er 12 kommentarer og
1 løsning

Dato og tid

Hej Eksperter,

Jeg gemmer min dato og tid som datetime i min database. Jeg vil gerne have den bliver skrevet som eksempelvis mandag den 22 september 2006 kl. 22:45, når jeg udskriver det på siden.

Nogen der kan hjælpe?

På forhånd tak :-)
Avatar billede sw_red_6 Nybegynder
16. november 2006 - 15:16 #1
du kunne kigge på strtotime() http://dk2.php.net/manual/en/function.strtotime.php
og date() http://dk2.php.net/manual/en/function.date.php
hvis vi kunne se et output fra din tabel og se hvordan du henter datoen ud nu kunne det måske være nemmere at hjælpe
Avatar billede kanselv Nybegynder
16. november 2006 - 15:17 #2
Hvordan ser det ud det der er i db'en.
Avatar billede latrell Nybegynder
16. november 2006 - 15:17 #3
2006-11-11 00:00:00
Avatar billede hmortensen Nybegynder
16. november 2006 - 15:25 #4
En mulighed kunne være:

//Sætter dato miljøet til dansk. sættes over dit sql kald.
setlocale( LC_TIME, "da_DK", "da_DK.ISO8859-1", "dan", "danish" );

while (...)
{
  $tmp = strtotime($DatoFraDB);
  echo strftime("%A den %d %B %Y kl. %H:%M", $tmp);
}
Avatar billede latrell Nybegynder
16. november 2006 - 15:29 #5
Hvilket udskriver:

Saturday den 11 November 2006 kl. 00:00

... hvordan får jeg også ugedage på dansk? :-)
Avatar billede kanselv Nybegynder
16. november 2006 - 15:30 #6
har du husket

setlocale( LC_TIME, "da_DK", "da_DK.ISO8859-1", "dan", "danish" );
Avatar billede latrell Nybegynder
16. november 2006 - 15:32 #7
setlocale( LC_TIME, "da_DK", "da_DK.ISO8859-1", "dan", "danish" );
mysql_select_db($database_habbomedia, $habbomedia);
$query_nyhed = sprintf("SELECT * FROM nyheder WHERE id = %s", $colname_nyhed);
$nyhed = mysql_query($query_nyhed, $habbomedia) or die(mysql_error());
$row_nyhed = mysql_fetch_assoc($nyhed);
$totalRows_nyhed = mysql_num_rows($nyhed);

$tid = $row_nyhed['tid'];
$tmp = strtotime($tid);
Avatar billede kinderaeg Nybegynder
16. november 2006 - 15:36 #8
Har oplevet at det nogle gange tager et par forsøg at ændre local'en, prøv evt med:

$i=0;
do {
  $locale_result = setlocale(LC_TIME, 'da_DK.ISO_8859-1');
} while ($locale_result != 'da_DK.ISO_8859-1' && $i++ < 10);
Avatar billede latrell Nybegynder
16. november 2006 - 15:37 #9
jeg skal ikke bruge en repeat, det skal kun udskrives én gang ;-)
Avatar billede kinderaeg Nybegynder
16. november 2006 - 15:54 #10
Det er jo ikke et spørgsmål om at skrive ud flere gange, men om at sætte local'en. Den er nogle gange lidt tung, men hvis du forsøger et par gange, plejer det at gå fint
Avatar billede latrell Nybegynder
16. november 2006 - 16:09 #11
Jeg kan ikke rigtig få det til at virke med locale..

Jeg har prøvet med:

---

$datovar = $row_nyhed['tid'];
$ugedag = Array("søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag");
$maaned = Array(1 => "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december");
$realdate = strtotime($datovar);
$strdag = $ugedag[date("w",$realdate)];
$strmaaned = $maaned[date("n",$realdate)];
$intdag = date("j",$realdate);

echo "$strdag den $intdag. $strmaaned";

-----

fra et andet spørgsmål. Som virker fint. Jeg mangler bare lige at få klokken med også. Kan det lade sig gøre? :)
Avatar billede latrell Nybegynder
16. november 2006 - 16:12 #12
Jeg koblede nogle af jeres løsninger sammen, som jeg fik til at virke. Kan I ikke smide et svar :)
Avatar billede kinderaeg Nybegynder
16. november 2006 - 20:38 #13
Svar

Du skal jo, når du bruger locale, huske at formatere det rigtigt, som hmortensen skriver:

echo strftime("%A den %d %B %Y kl. %H:%M", $tmp);
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