Slettet bruger
22. november 2003 - 13:13
Der er
15 kommentarer og 1 løsning
konvertere tekststreng som dato og gemme som timestamp
Hej! Tid til at spørge gutterne igen :) Jeg har problemer med at samle en tekstreng, konvertere den til et timestamp herefter gemme den. Eksempelvis vælger man 1 januar 2003 (01-01-2003) DB: ----------------------------------------- CREATE TABLE `datotest` ( `id` int(11) NOT NULL auto_increment, `tekst` varchar(100) NOT NULL default '', `dato` timestamp(8) NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM; ----------------------------------------- PHP: ----------------------------------------- $datosamlet = $_POST["aar"]."-".$_POST["maaned"]."-".$_POST["dag"]; $datosamlet = strtotime($datosamlet); ----------------------------------------- SQL: ----------------------------------------- $sql="INSERT INTO datotest (tekst, dato) VALUES ('".$_POST["tekst"]."', ".$datosamlet.")"; mysql_query($sql); ----------------------------------------- Når jeg så efterfølgende hiver data ud fra db, så er det IKKE 1 januar 2003: $sql ="SELECT tekst, DATE_FORMAT(dato,'%M %D, %Y') AS dato FROM datotest ORDER BY dato ASC"; $resultat = mysql_query($sql); while($raekke = mysql_fetch_array($resultat)){ echo "<tr><td>".$raekke['tekst']."</td><td>".$raekke['dato']."</td></tr>"; } Dato resultat: ----------------------------------------- November 11th, 2000 ----------------------------------------- Er der nogen der kan assistere? På forhånd tak :)
Annonceindlæg fra QNAP
Slettet bruger
22. november 2003 - 13:23
#1
Slettet bruger
22. november 2003 - 14:24
#2
anyone?
22. november 2003 - 14:27
#3
Brug DATETIME, ikke TIMESTAMP
Slettet bruger
22. november 2003 - 14:32
#4
Njah, nu har jeg brugt 4 timer på at forsøge at lave et timestamp, så det skal det altså være.... Er det php funtionen strtotime, der ikke leverer det i unix timestamp eller hvad?
22. november 2003 - 14:33
#5
Hvorfor det? TIMESTAMP gør noget helt andet. Og iøvrigt er det vis kun DATE du behøver, da du ikke har et tidspunkt med. Men brug du bare 4 timer mere hvis du synes det er sjovt :)
Slettet bruger
22. november 2003 - 14:37
#6
Det er jo for at lære lidt om denne datatype. Det er jo en meget nem løsning at give op på halvvejen ikke :) Timestampet giver dig ufattelig mange formateringsmuligheder i forhold til en DATE
24. november 2003 - 15:58
#7
Et timestamp indeholder 10 tal CREATE TABLE ny ( id tinyint(4) NOT NULL auto_increment, tid int(10) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; $datosamlet = mktime(0,0,0,$_POST["maaned"],$_POST["dag"],$_POST["aar"]);
Slettet bruger
24. november 2003 - 21:17
#8
Sukos -> hvor er datatypen 'timestamp'? Jeg vil ikke smide det i en kolonne af typen int. :) Nu bliver jeg stædig, er jeg virkelig den eneste som er interesseret i hvordan det skal postes? Måske skal jeg spørge på en anden måde: 1. Du har en tekststreng. 2. Den skal laves om til et timestamp. 3. Hvordan skal man poste et timestamp til en database, i en kolonne af typen 'timestamp'?
25. november 2003 - 13:15
#9
æhæh, mig som tog timestamp som et unix timestamp
25. november 2003 - 13:23
#10
Jeg vil ikke sige jeg er interesseret, men jeg ved det godt. Du skulle nu bruge DATE i stedet for - eller sukos forslag om et "rigtigt" unix timestamp. Men ok, med TIMESTAMP: Erstat $datosamlet = $_POST["aar"]."-".$_POST["maaned"]."-".$_POST["dag"]; $datosamlet = strtotime($datosamlet); med $datosamlet = $_POST["aar"].$_POST["maaned"].$_POST["dag"]; hvor jeg antager aar er på 4 cifre, og maaned og dag på 2, med evt foranstillet 0 (ellers skal det lige fikses).
25. november 2003 - 13:27
#11
Næh, du kan bare nøjes med at slette linien $datosamlet = strtotime($datosamlet); i dit oprindelige eksempel og skrive $sql="INSERT INTO datotest (tekst, dato) VALUES ('".$_POST["tekst"]."', '".$datosamlet."')"; så behøver du ikke foranstillede 0-er
Slettet bruger
27. november 2003 - 18:22
#12
erikjakobsen -> det var da lige det det var! :) Den eneste jeg IKKE havde prøvet... - poste direkte! hvornår er strtotime aktuel?
27. november 2003 - 18:39
#13
Hvis man skal have et unixtimestamp - ikke det samme som et mysql-timestamp.
Slettet bruger
05. januar 2004 - 21:41
#14
ok. tak det var fedt at få afklaret. Smid et svar, så får du point :)
05. januar 2004 - 21:48
#15
ok da ;)
Slettet bruger
07. januar 2004 - 19:03
#16
versesågod, tak for hurtig hjælp! :)
Computerworld tilbyder specialiserede kurser i database-management