Avatar billede janjacobsen Nybegynder
13. marts 2004 - 13:42 Der er 13 kommentarer og
1 løsning

MySQL timestamp bliver til 2038

Hvordan får jeg dette timestamp i databasen(20040313133344) til at se pænt ud i en echo? Den formaterer det som år 2038..Hvorfor?

Det er feltet data_pub som indeholder datofeltet.

<?php require_once('../Connections/afx.php'); ?>
<?php
mysql_select_db($database_afx, $afx);
$query_Recordset1 = "SELECT * FROM temp ORDER BY id DESC LIMIT 1";
$Recordset1 = mysql_query($query_Recordset1, $afx) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<html>
<head>
<title>showtemp</title>
<link href="/css/greenstyle2.css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="82%" border="0" align="center">
  <tr>
    <td width="18%">Navn:</td>
    <td width="24%"><?php echo $row_Recordset1['name']; ?></td>
    <td width="26%">Billede:</td>
    <td width="32%">&nbsp;</td>
  </tr>
  <tr>
    <td>Adresse:</td>
    <td><?php echo $row_Recordset1['street']; ?></td>
    <td rowspan="5"><?php echo $row_Recordset1['picture']; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Postnr. og by</td>
    <td><?php echo $row_Recordset1['postnumber']; ?><?php echo $row_Recordset1['city']; ?> </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Telefon:</td>
    <td><?php echo $row_Recordset1['telephone']; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Mobil:</td>
    <td><?php echo $row_Recordset1['mobile']; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Fax:</td>
    <td><?php echo $row_Recordset1['fax']; ?></td>
    <td>CPR nr.</td>
    <td><?php echo $row_Recordset1['cpr_number']; ?></td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><?php echo $row_Recordset1['e_mail']; ?></td>
    <td>Land:</td>
    <td><?php echo $row_Recordset1['country']; ?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>K&oslash;n:</td>
    <td><?php echo $row_Recordset1['sex']; ?></td>
  </tr>
  <tr>
    <td>Transport:</td>
    <td><?php echo $row_Recordset1['transport']; ?></td>
    <td>Oprettet:</td>
    <td><?php echo date("d-m-Y", $row_Recordset1['data_pub']); ?></td>
  </tr>
  <tr>
    <td>Ryger:</td>
    <td><?php echo $row_Recordset1['smoking']; ?></td>
    <td>Tilknyttet afdeling:</td>
    <td><?php echo $row_Recordset1['dep_connect']; ?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>Tilknyttet konsulent:</td>
    <td><?php echo $row_Recordset1['resp_contact']; ?></td>
  </tr>
  <tr>
    <td>Arbejdsomr&aring;der:</td>
    <td><?php echo $row_Recordset1['work_areas']; ?></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Aktiv/Inaktiv:</td>
    <td><?php echo $row_Recordset1['active_inactive']; ?></td>
    <td>Fagforening:</td>
    <td><?php echo $row_Recordset1['union']; ?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>A-kasse:</td>
    <td><?php echo $row_Recordset1['a_box']; ?></td>
  </tr>
  <tr>
    <td>Noter:</td>
    <td colspan="3"><?php echo $row_Recordset1['notes']; ?></td>
  </tr>
</table>
<div align="center"></div>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
Avatar billede muddi Praktikant
13. marts 2004 - 13:48 #1
Hvordan ser værdien ud i tabellen, hvis du kigger i phpmyadmin?
Avatar billede danino Nybegynder
13. marts 2004 - 13:49 #2
20040313133344 er ikke et timestamp... Det ser mere ud som om det er følgende tidspukt:
2004/03/13 kl 13:33:44
Avatar billede janjacobsen Nybegynder
13. marts 2004 - 13:49 #3
Den ser sådan ud: 20040313133344 altså for denne ene post.
Avatar billede janjacobsen Nybegynder
13. marts 2004 - 13:50 #4
Kan jeg formatere det så det ser pænt ud?
Avatar billede danino Nybegynder
13. marts 2004 - 13:50 #5
eller mere præcist... det er korrekt at dette timestamp er tiden for en gang i 2038...
Avatar billede janjacobsen Nybegynder
13. marts 2004 - 13:52 #6
Ok, dvs, jeg lige så godt kunne lade feltet være et "int" i stedet for "timestamp"
Avatar billede muddi Praktikant
13. marts 2004 - 13:56 #7
prøv at trække værdien ud på denne her måde:

SELECT *, DATE_FORMAT(`data_pub`, %d %m %Y) AS dato FROM temp ORDER BY id DESC LIMIT 1

Måske kan man også bruge:
SELECT *, DATE_FORMAT(`data_pub`, %d-%m-%Y) AS dato FROM temp ORDER BY id DESC LIMIT 1

I så fald skal du bare skrive
echo $row_recordset['dato'];
i php og så har du på forhånd ladet MySQL klare formatteringen :o)
Avatar billede muddi Praktikant
13. marts 2004 - 13:59 #8
danino >> Nej, det er et timestamp i MySQL, men det passer ikke sammen med timestamp i PHP, da mysql-timestamp har formatet: yyyymmddhhmmss hvorimod php-funktionen forventer et unix-timestamp, som er antal sekunder siden 1. januar 1970. De to har altså intet til fælles.
Avatar billede muddi Praktikant
13. marts 2004 - 14:02 #9
de to eksempler jeg gav før er forkerte, men denne her er testet:

SELECT *, DATE_FORMAT(`data_pub`, '%d-%m-%Y') AS dato FROM temp ORDER BY id DESC LIMIT 1
Avatar billede danino Nybegynder
13. marts 2004 - 14:03 #10
muddi >> ok... my bad..
Avatar billede janjacobsen Nybegynder
13. marts 2004 - 14:03 #11
Argh, jeg får lige en fejl:
You have an error in your SQL syntax near '%d-%m-%Y) AS dato FROM temp ORDER BY id DESC LIMIT 1 ' at line 1

Og den blev rettet til:
$query_Recordset1 = "SELECT *, DATE_FORMAT(`data_pub`, %d-%m-%Y) AS dato FROM temp ORDER BY id DESC LIMIT 1";
Avatar billede janjacobsen Nybegynder
13. marts 2004 - 14:04 #12
Ok, mange tak - det virker fint nu. tak tak.
Avatar billede muddi Praktikant
13. marts 2004 - 14:06 #13
så lidt :o)
Avatar billede Slettet bruger
15. marts 2004 - 06:40 #14
Ellers kan du i din query bede MySQL lave dens eget interne timestamp om til etunix-time4stamp, som php's tidsfinktioner kan forstå:

$query_Recordset1 = "SELECT *, UNIX_TIMESTAMP(`data_pub`) AS dato FROM temp ORDER BY id DESC LIMIT 1";

og


<?php echo date("d-m-Y", $row_Recordset1['dato']); ?>
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