Avatar billede dm-bm Nybegynder
22. september 2003 - 15:36 Der er 50 kommentarer og
1 løsning

formatere tid/dato ud fra timestamp

Jeg har et nyhedssystem hvor der i tabellen er følgende kode:
Oprettet: <?php echo $row_Recordset1['Time']; ?>

'Time' i MySQL er sat som Timestamp. Hvordan kan jeg opstille dato og tid i et lidt mere normalt format. Det står bare ud i en lang uoverskuelig smøre. Og hvor skal jeg evt. sætte scriptet ind hvis det er et sådan.

Jeg har lige et andet spørgsmål. Hvordan kan jeg få databasen til at slette de ældste rækker, så der f.eks. maximum kan blive 40 rækker? Så den sletter de gamle og beholder de nyeste.
Er PHP noob, men synes det er sjovt at rode med. Jeg var helt ude af den igår da eksperten var nede. Jeg ville videre :D

DM
Avatar billede tipsen Nybegynder
22. september 2003 - 15:39 #1
Hvordan ønsker du datoen skrevet?
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:42 #2
mysql_query("SELECT DATE_FORMAT(dato, '%d/%m - %H:%i') AS Time");

Og så

<?php echo $row_Recordset1['Time']; ?>

Sårn i den dur?
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:42 #3
Ville gerne have om det kunne stå sådan: 22/09/2003 15:42
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:43 #4
mysql_query("SELECT DATE_FORMAT(dato, '%d/%m/%Y - %H:%i') AS Time");
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:43 #5
Ja, men hvor skal jeg stille mysql_query("SELECT DATE_FORMAT(dato, '%d/%m - %H:%i') AS Time"); ind? <?php echo $row_Recordset1['Time']; ?> står helt for sig selv.
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:45 #6
Åhhh du har Timestamp...
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:46 #7
Ja jeg kan ikke rigtig få datetime, time og date til at fungere. Det står bare som 0 det hele
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:46 #8
<?php echo date("H:i:s - d-m-y",$row_Recordset1['Time']; ?>
Avatar billede snowball Novice
22. september 2003 - 15:46 #9
Bevæger mig lige ud på ukendt grund ;)

<?php echo date("d M Y (H:i:s)", $row_Recordset1['Time']); ?>

http://www.php.net/manual/en/function.date.php

Snowball
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:46 #10
<?php echo date("H/i - d-m-Y",$row_Recordset1['Time']; ?>
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:47 #11
Damnit - Snowball kom først.
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:47 #12
Næh han gjorde ej :))
Avatar billede snowball Novice
22. september 2003 - 15:49 #13
Selve dato formatet passer ikke helt med det jeg skrev, men det skal jo bare tilpasses - evt. med hjælp af de "variabler" man kan læse om på http://www.php.net/manual/en/function.date.php ;)

Snowball
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:50 #14
*G* Det lader til at fungere lidt. Nu har min database bare lavet lidt ged i den. Det ene indlæg er i 1970 og et andet i år 2038 :D
Smid et svar nikolajdu :)
Jeg takker og bukker

DM
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:50 #15
Jeg takker snowball.. jeres svar virker begge, men må vel gå efter første svar? :)
Avatar billede snowball Novice
22. september 2003 - 15:51 #16
Nednestående er vel det du søger !?

<?php echo date("d/m/Y H:i", $row_Recordset1['Time']); ?>

Snowball
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:51 #17
Nej vi kan da dele - Vi kom stort set lige hurtigt (ikke noget frækt her...)
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:51 #18
Nu fik snowball det også rettet til :))
Avatar billede snowball Novice
22. september 2003 - 15:52 #19
Deler vi !? Hvis ikke så bare afvis dette svar :)

Snowball
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:53 #20
LOL
Ja okay.. hvis i selv vil finde ud af det :)
Ved i hvorfor den bliver ved med at skrive 19 jan 2038 ?? Og klokken er 04:14 ??
Avatar billede exp Juniormester
22. september 2003 - 15:53 #21
Er det unix-timestamp eller mysql-timestamp?
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:53 #22
Måske et spørgsmål til database afdelingen...
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:54 #23
Tja.. jeg ved det faktisk ikke. Jeg bruger mysqlCC til at rette i databasen.
Avatar billede exp Juniormester
22. september 2003 - 15:55 #24
mysql-timestamp:
20030922155400

unix-timestamp:
1064238862

Ovenstående er samme tidspunkt (ca)
Avatar billede nikolajdu Nybegynder
22. september 2003 - 15:55 #25
Hov nu fik snowball ikke nogle...

http://www.eksperten.dk/spm/404276
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:57 #26
exp>> Den øverste var sådan det kom frem til at starte med
Avatar billede tipsen Nybegynder
22. september 2003 - 15:58 #27
Jeg forstår ikke hvordan date() der tager et UNIX timestamp som input pludselig kan fungere med et MySQL timestamp!?

http://www.mysql.com/doc/en/Date_and_time_functions.html
http://dk.php.net/manual/en/function.date.php
Avatar billede dm-bm Nybegynder
22. september 2003 - 15:58 #28
Er villig til at dele flere point ud. Rodede med det hele dagen igår uden held. Eksperten var nede *Vrææææl*
:D
Avatar billede tipsen Nybegynder
22. september 2003 - 15:59 #29
Og at dømme efter de seneste kommentarer fungerer det så heller ikke...
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:01 #30
Nej tallene bliver ens, men mit spørgsmål bestod egentlig også i formatet af tid og dato. Ville da meget gerne om jeg kunne få det til at stå rigtigt. Så jeg ikke skal vente til år 2038 med at offentliggøre siden *g*
Avatar billede exp Juniormester
22. september 2003 - 16:01 #31
<?php
    $time = $row_Recordset1['Time']);

    $year = substr($time, 0, 4);
    $month = substr($time, 4, 2);
    $date = substr($time, 6, 2);
    $hour = substr($time, 8, 2);
    $min = substr($time, 10, 2);
    $sec = substr($time, 12, 2);

    echo $date."/".$month."/".$year." ".$hour.":".$min.":".$sec;
?>

Findes sikkert en nemmere måde, men dette virker da
Avatar billede tipsen Nybegynder
22. september 2003 - 16:03 #32
Brug evt: http://dk.php.net/manual/en/function.strtotime.php

Eller en ren MySQL løsning:

SELECT DATE_FORMAT(navnpaadatofelt, '%e/%m/%Y %H:%i') AS paentid FROM tabelnavn;
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:03 #33
exp>> Det laver så en direkte fejl i starten af scriptet :o/
Avatar billede nikolajdu Nybegynder
22. september 2003 - 16:04 #34
Tipsen - Det var den jeg lagde ud med
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:05 #35
Må prøve at rode med det fra php.net måske
Avatar billede tipsen Nybegynder
22. september 2003 - 16:05 #36
nikolajdu: Forstår så ikke, hvorfor du forkastede den - det er da den pæneste løsning?
Avatar billede nikolajdu Nybegynder
22. september 2003 - 16:06 #37
Min fejl i den første var at jeg havde skrevet "dato" og ikke "Time".

Spørgsmålet er om mySql overhovedet er glad for felter der hedder Time. Jeg har rodet med den slags fejl nogle gange.
Avatar billede nikolajdu Nybegynder
22. september 2003 - 16:07 #38
tipsen - Fordi jeg roder ligeså meget som dm_bm ;-)
Avatar billede tipsen Nybegynder
22. september 2003 - 16:09 #39
"Time" er ikke umiddelbart et hit i MySQL (http://www.mysql.com/doc/en/Reserved_words.html), men det burde fungere.
Avatar billede nikolajdu Nybegynder
22. september 2003 - 16:10 #40
Se det tænkte jeg nok.

dm-bm - Prøv at omdøbe feltet Time til noget andet.
Avatar billede tipsen Nybegynder
22. september 2003 - 16:11 #41
Hvis man endelig vil lave løsningen i PHP (waste of time...) kan man vel bare gøre sådan:

<?php echo date('d/m/Y H:i', strtotime($row_Recordset1['Time']));?>
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:12 #42
Jeg må indrømme at være på bar bund. Når jeg ser en engelsk manual eller lign. bliver jeg drøn forvirret og ender med at få kludret rundt i det. Hvordan ville i foreslå mig at lave tid og dato på en simpel måde?
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:13 #43
tipsen>> Ja datoen virker så, men klokken er 00:00
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:16 #44
Og dog... Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in (placering)
Avatar billede dm-bm Nybegynder
22. september 2003 - 16:20 #45
Jeg omdøbte time til dato, men laver den så ikke bare den nuværende dato ?
Avatar billede tipsen Nybegynder
22. september 2003 - 17:50 #46
Det er vist efterhånden gledet temmelig meget ud i sandet med alle de forskellige forslag der er kommet - Prøv at vise din nuværende kode, din tabelstruktur og dit tabelindhold.
Avatar billede dm-bm Nybegynder
22. september 2003 - 20:06 #47
Sådan ser min tabel ud.
<?php do { ?>
<tr bgcolor="#0099CC" class="text">
<td width="481" bgcolor="#999999">
<div align="left" class="style4">Dato: <?php echo $row_Recordset1['date']; ?>&nbsp; Kl. <?php echo date($row_Recordset1['time']);?></div></td>
</tr>
<tr bgcolor="#0099CC" class="text">
<td bgcolor="#FFFFFF">
<div align="left" class="text">                        <table width="100%"  border="1" cellspacing="0" cellpadding="0">
<tr>
<th scope="row"><div align="left"> <?php echo nl2br($row_Recordset1['nyhed']); ?>&nbsp; </div>                              </th>
</tr>
<tr>
<th scope="row"><div align="right"><span class="style8">Posted by: <span class="style9"><?php echo $row_Recordset1['name']; ?></span></span></div></th>
</tr>
</table>
</div></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table></th>
</tr>
</table></th>
</tr>
<tr>
<th height="34" valign="top" scope="row"><table border="0" width="50%" align="center">
<tr class="text">
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1); ?>">First</a>
<?php } // Show if not first page ?>
</td>
<td width="31%" align="center">
<?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1); ?>">Previous</a>
<?php } // Show if not first page ?>
</td>
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1); ?>">Next</a>
<?php } // Show if not last page ?>
</td>
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1); ?>">Last</a>
<?php } // Show if not last page ?>
Avatar billede dm-bm Nybegynder
22. september 2003 - 20:10 #48
Hvad kan jeg skrive for at sætte tid og dato ind i hver sin række i min database via en formel?
Så det bliver indsat korrekt så problemet kun er udskrivningen. Kan jeg gøre det med nogle hidden fields, så det gøres automatisk eller kan databasen selv tilføje korrekt tid på oprettelsen af min record i en date og en time række?
Ved ikke om det er beskrevet rigtigt, men er som jeg forstår det.

DM
Avatar billede nikolajdu Nybegynder
23. september 2003 - 01:10 #49
dm-bm - Du kan få pointene tilbage hvis du ønsker - Du fik jo ikke et helt brugbart svar.
Avatar billede sukos Juniormester
23. september 2003 - 02:13 #50
Det er nok lidt ved siden af, men jeg foretrækker selv at lægge time(), som er antal sekunder siden 1-1-1970, ind i DB'en
Derefter bliver de formateret til noget "læsbart" med date()
Avatar billede exp Juniormester
23. september 2003 - 08:22 #51
sukos >>
Jeg benytter ogfså den fremgangsmåde...
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