[PHP/MySQL] Tijd opslaan en ophalen uit DB

Pagina: 1
Acties:
  • 86 views sinds 30-01-2008

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-05 12:34

SAiKO

Grote Smurf

Topicstarter
Over dit onderwerp zullen vast wel meer posts zijn maar de search is uit de lucht en ik loop toch erg vast op dit punt. In de database "weblogg" is een tabel "tijd" met een datetime veld "tijd" waar de tijden worden opgeslagen.

Om de tijd in de database te krijgen gebruik ik:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?

$dateandtime = date("Y") . "-" . date("m") . "-" . date("d") . " " . date("G") . ":" . date("i") . ":" . date("s");
print $dateandtime; //ff een checkje

$db = mysql_connect("server", "user", "pwd"); 
/* pak de juiste database */
mysql_select_db("weblogg"); 
$sql = "INSERT INTO tijd (tijd) 
        VALUES ('$dateandtime')"; 
mysql_query($sql);
?>


En om het er weer uit te krijgen gebruik ik:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$db = mysql_connect("server", "user", "pwd"); 
mysql_select_db("weblogg"); 
$zuig = "SELECT * FROM tijd";
mysql_query($zuig);

$resultaat = mysql_query($zuig);

    while ($record = mysql_fetch_object($resultaat)) {
    echo "<b>$record->ID</b>&nbsp $record->tijd<br>\n";
    }
?>


Ik krijg nu netjes de datum en tijd uit de database maar in Y-m-d ipv d-m-Y, hoe moet ik dit nu netjes oplossen?

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

Volgens mij kun je beter unixtime gaan gebruiken voor 't loggen.

*insert signature here


  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-05 12:34

SAiKO

Grote Smurf

Topicstarter
hmm, kun je kort uitleggen hoe dat werkt?

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Paar dingen:

- Je hoeft niet al die date() dingen aan elkaar te plakken, je kan met date() gewoon zo werken: date("Y-m-d G:i:s")

- Je kan beter gewoon de sql NOW() gebruiken. Dus: INSERT INTO tijd (tijd) VALUES(NOW())

- Waarom die je twee keer mysql_query? (regel 5 en 7)

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-05 12:34

SAiKO

Grote Smurf

Topicstarter
owkee, ik heb 'm nu aangepast zodat ie sql NOW() gebruikt, werkt prima. Ik zit alleen nog met het formaat. Kan ik dat later nog eenvoudig aanpassen?

Verwijderd

hier een functietje van mij die ik gewoon gebruik op verschillende pagina's om de datm en tijd weer te geven..
mischien is het een beetje een niet net script :) maarja, heb nog geen zin gehad om deze opnieuw te schrijven..
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function showdate($date, $time, $short) {
    $rdate = split(' ', $date);
    $cdate = split('-', $rdate[0]);
    $year = $cdate[0];
    if (substr($cdate[1], 0, 1) == "0") $month = substr($cdate[1], 1, 1);
    else  $month = $cdate[1];
    if (substr($cdate[2], 0, 1) == "0") $day = substr($cdate[2], 1, 1);
    else $day = $cdate[2];
    if (!$short) $maandarray = array("0","januari","februari","maart","april","mei","juni","juli","augustus","september","october","november","december");
    else $maandarray = array("0","jan","feb","maa","apr","mei","jun","jul","aug","sep","oct","nov","dec");
    if (!$time) return $day.' '.$maandarray[$month].' '.$year;
    else return $day.' '.$maandarray[$month].' '.$year.' | '.substr($rdate[1], 0, 5);
}


aanroepen kan gewoon met de datum in formaat Y-m-d H:i:s (datetime uit mysql)

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Je moet je timestamp uit je database halen met SELECT UNIX_TIMESTAMP(tijd) FROM tijd

En dan kan je gewoon formatten met date weer, bv, date("Y-m-d H:i:S", $stamp);

Verwijderd

TjarkVerhoeven schreef op 03 augustus 2002 @ 20:21:
Volgens mij kun je beter unixtime gaan gebruiken voor 't loggen.
Een unix timestamp is heel iets anders dan de timestamp die MySQL gebruikt.
Unix timestamp: het aantal seconden sinds middernacht 1 januari 1970
MySQL timestamp: een string of getal met het volgende formaat: YYYYMMDDhhmmss

bijvoorbeeld 20020803210922 is (ongeveer) dit moment in een MySQL timestamp.

nadeel: het is niet erg standaard en compatible
voordeel: je kunt er makkelijk een leesbare datum/tijd van maken door middel van functietje waarin je gebruik maakt van substr()

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-05 12:34

SAiKO

Grote Smurf

Topicstarter
Dus als ik unix timestamp wil opslaan in welk soort veld moet dat dan?

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:00
Pak je manual er even bij.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.