PHP/SQL - tijden opslaan in database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Allardie
  • Registratie: November 2000
  • Laatst online: 13:33
Ik wil in een postgresql database tijden opslaan. Het gaat om een overzicht van activiteiten die een bepaalde tijd duren. Ik was van plan ze gewoon als tekst op te slaan, dus de kolom type "text" te maken, en dan 1 kolom voor starttijd en 1 voor eindtijd.

Echter: ik wil de activiteiten daarna op het scherm zetten in de goede volgorde.
Als ik ze als text op sla in de Database, en dan query via zoiets:
code:
1
$result = $CLASS["db"]->query("SELECT * FROM activiteiten ORDER BY starttijd ASC");


dan sorteert hij op eerste cijfer, en komt 11.00 uur dus voor 8.00 uur.
Het moet iets worden als:

code:
1
2
8.00 - 9.00-------------Activiteit 1
11.00-12.00-------------Activiteit 2


Hoe zouden jullie dit oplossen? Omdat het door leken ingevuld moet kunnen worden straks via een soort content management system, heeft het naar mijn idee weinig zin om 9.00 uur om te gaan zetten via de date functies van php naar een UNIX timestap without zone, en dan om het bezoekerskant "online" te zetten weer terug te vertalen naar een x.xx notatie. (als ik die unix of php tijdsnotatie dan wel kan sorteren, weet ik niet zeker.).

Ideeen zijn van harte welkom, zoveel handigheid heb ik nog niet in PHP.

[ Voor 7% gewijzigd door Allardie op 27-07-2004 20:46 . Reden: typos ]


Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

opslaan als timestamp ( date("U"), of gewoon de timestamp functie van sql), en die converteren naar een leesbaar iets met dezelfde date functie

Acties:
  • 0 Henk 'm!

  • jochemd
  • Registratie: November 2000
  • Laatst online: 24-08 12:31
Allardie schreef op 27 juli 2004 @ 20:41:
Ik wil in een postgresql database tijden opslaan. Het gaat om een overzicht van activiteiten die een bepaalde tijd duren. Ik was van plan ze gewoon als tekst op te slaan, dus de kolom type "text" te maken, en dan 1 kolom voor starttijd en 1 voor eindtijd.
Gebruik een veld voor de starttijd van het datatype TIME, en een veld voor de duur van de activiteit van het datatype INTERVAL. Sorteren op grond van het veld starttijd, eindtijd on the fly berekenen aan de hand van de duur.

Acties:
  • 0 Henk 'm!

  • raps
  • Registratie: April 2003
  • Laatst online: 06-09 19:51
Ik denk dat de TS de basic idea nog niet heeft van de mogelijkheden:

PHP:
http://nl.php.net/time
http://nl.php.net/date

PostgreSQL:
http://www.postgresql.org...ic/datatype-datetime.html
http://www.postgresql.org...ic/datetime-appendix.html

(via Google ben je er zo :/ )

[ Voor 6% gewijzigd door raps op 27-07-2004 21:44 ]


Acties:
  • 0 Henk 'm!

  • Allardie
  • Registratie: November 2000
  • Laatst online: 13:33
als je weet waar je op moet zoeken ben je er idd zo met google :>
bedankt :)

ik had problemen ermee, ondanks het time without timezone type slikte die niet mijn notatie van 09:00...wat dus wle zou moeten. Morgen verder proberen.


edit:
Hij doet het, hij maakt wel van 09:00 een langere notatie (09:00:00) maar dat sloop ik er dan wel weer uit mbv substr($string,0,5) tot een kortere notatie.

[ Voor 12% gewijzigd door Allardie op 28-07-2004 11:21 ]