Hey,

voor mijn ban systeem wil ik tussen 2 tijden. bijv 2008-11-14 22:59

en 2008-11-16 13:57 het verschil daartussen berekenen. en dan het liefst in seconden. ik heb me rot gezocht maar kom der gewoon niet uit.
ben nu egt al een paar dagen bezig...
word hier echt heel depressief van:O

Gr Reint
Het is mogelijk met PHP maar veel eenvoudiger met een database. Gebruik twee DATETIME velden om de tijdstippen in op te slaan en de volgende query geeft je het verschil in seconden:

SELECT
  TIME_TO_SEC(TIMEDIFF(datumtijdveld2, datumtijdveld1)) AS seconden
FROM
  tabel
Ban-tijd is dus gewoon een vast gegeven?
Waarom dan dubbel gegevens opslaan.
Immers: eindtijd == begintijd + vaste_tijd

Met 1 simpele SQL-regel in je query tel je die datum gewoon bij de begintijd op.
Ga dus geen dubbele gegevens opslaan.

Ik zie het al helemaal voor me:
Bantijd is standaard 1 maand.
En daar staat het dan (database):


ID		USERID		START		EIND
1		5			10-10-2008	10-11-2008
2		48			23-12-2008	23-01-2008
3		3847		04-04-2009	04-05-2009
...
384		378			31-01-2009	31-02-2008


Hier zijn START en EIND dus hetzelfde, op 1 maand na.
Dubbele gegevens dus.
Probeer dat te voorkomen.
Eddy Erkelens schreef op 05.11.2008 14:27
Ban-tijd is dus gewoon een vast gegeven?
Waarom dan dubbel gegevens opslaan.
Immers: eindtijd == begintijd + vaste_tijd

Met 1 simpele SQL-regel in je query tel je die datum gewoon bij de begintijd op.
Ga dus geen dubbele gegevens opslaan.

Ik zie het al helemaal voor me:
Bantijd is standaard 1 maand.
En daar staat het dan (database):


ID		USERID		START		EIND
1		5			10-10-2008	10-11-2008
2		48			23-12-2008	23-01-2008
3		3847		04-04-2009	04-05-2009
...
384		378			31-01-2009	31-02-2008


Hier zijn START en EIND dus hetzelfde, op 1 maand na.
Dubbele gegevens dus.
Probeer dat te voorkomen.


Hoe zit het dan als een maand korter dan 31 dagen duurt? 30 dagen? of met febrauri in het schrikkeljaar?
Een maand is een maand.
Als je iemand voor een maand bant op 30 januari, dan zal hij 1 maart gewoon weer mogen bezoeken.
Want hij is geband tot het eind van de volgende maand (omdat 30 februari niet bestaat).

Reageren