Avatar billede datasource Nybegynder
22. september 2006 - 17:46 Der er 15 kommentarer og
1 løsning

Problem med dato

Hej eksperter.

Jeg er i gang med at lave et nyhedssystem, hvor der skal være en oprettelsesdato til hver nyhed.

For at indsætte datoen i tabellen bruger jeg dette:


$tid = date("Y-m-d");
mysql_query("INSERT INTO `nyheder` (id, emne, tekst, dato)

VALUES ('','".$_POST['select']."','".$_POST['FCKeditor1']."','$tid');") or die(mysql_error());

og når jeg skal vise datoerne til nyhederne bruger jeg:

echo date("d/m/Y", $dato);

Men den skriver hele tiden 01/01/1970.

dato i tabellen er en DATETIME

Nogle der ved hvad jeg gør galt ?
Avatar billede datasource Nybegynder
22. september 2006 - 17:48 #1
og liger over echo date("d/m/Y", $dato); har jeg:

$dato = ($row['dato']);
Avatar billede datasource Nybegynder
22. september 2006 - 18:29 #2
Slet ingen der kan svare på dette simple spørgsmål ?
Avatar billede zynzz Praktikant
22. september 2006 - 18:57 #3
Indsæt evt. time() til mysql

Eller du kan indsætte date("Y-m-d") og udskrive direkte...
Avatar billede erikjacobsen Ekspert
22. september 2006 - 19:15 #4
Du kan måske gøre sådan her

  $dato='2006-11-23';
  print date("d/m/Y", strtotime($dato));
Avatar billede coderdk Praktikant
22. september 2006 - 20:05 #5
Som erik skriver eller du kan i din SELECT lave en: SELECT UNIX_TIMESTAMP(dato) AS dato - så vil din kode virke... :)
Avatar billede bromer Nybegynder
24. september 2006 - 15:49 #6
Hvordan ser din data ud fra din select? Er værdien i dato-feltet NULL eller en misforstået dato?
Avatar billede datasource Nybegynder
26. september 2006 - 15:28 #7
til at hente nyhederne bruger jeg dette:

$query = mysql_query ("SELECT * FROM `nyheder` ORDER BY dato DESC") or die(mysql_error());

while($row = mysql_fetch_array($query))
{

$text = ($row['tekst']);
$emne = ($row['emne']);
$dato = ($row['dato']);
...
Avatar billede datasource Nybegynder
26. september 2006 - 15:37 #8
Hvordan får jeg så denne SELECT UNIX_TIMESTAMP(dato) AS dato ind ?
Avatar billede sw_red_6 Nybegynder
26. september 2006 - 15:39 #9
Prøv med:
$query = mysql_query ("SELECT *, UNIX_TIMESTAMP(dato) AS dato FROM `nyheder` ORDER BY dato DESC") or die(mysql_error());
Avatar billede datasource Nybegynder
26. september 2006 - 15:45 #10
Okay. Problemet er bare at den nu skriver dagens dato og ikke den dato nyheden blev skrevet ?
Avatar billede datasource Nybegynder
26. september 2006 - 21:01 #11
Jeg kan godt få det til at virke hvis jeg skriver:
---
mysql_query("INSERT INTO `nyheder` (id, emne, tekst, dato)

VALUES ('','".$_POST['select']."','".$_POST['FCKeditor1']."',NOW());") or die(mysql_error());
---
Så skriver den datoen man opretter nyheden.

Men hvis jeg gør sådan:
---
$tid=strtotime("Y-m-j","$datofelt");
mysql_query("INSERT INTO `nyheder` (id, emne, tekst, dato)

VALUES ('','".$_POST['select']."','".$_POST['FCKeditor1']."','$tid');") or die(mysql_error());
---

Skriver den bare 01/01-1970
Avatar billede datasource Nybegynder
26. september 2006 - 21:43 #12
Slet ingen der kan hjælpe ?
Avatar billede sw_red_6 Nybegynder
27. september 2006 - 10:22 #13
prøv med $tid=strtotime("Y-m-d","$datofelt");
Avatar billede datasource Nybegynder
27. september 2006 - 19:58 #14
Det virker stadig ikke...opretter lige et nyt spørgsmål, da dette er ved at komme lidt for langt ned i rækken ;)
Avatar billede erikjacobsen Ekspert
27. september 2006 - 20:11 #15
Det behøver du da ikke (og må heller ikke før der er gået 7 dage).

Hvor kommer $datofelt fra? Og hvad står der i feltet dato i tabellen?
Avatar billede sw_red_6 Nybegynder
28. september 2006 - 08:59 #16
den er da vist også helt gal den jeg selv foreslår...
prøv det her i stedet for: $tid=date("Y-m-d",time());
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
Computerworld tilbyder specialiserede kurser i database-management

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