[PHP/MySQL] Tijd berekenen tussen Nu en tijd in database

Pagina: 1
Acties:
  • 117 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey scripters,

Ik ben op zoek naar een script die het aantal uur kan uitrekenen die zit tussen nu, en een datum+tijd in de database. Dus bijvoorbeeld:

Tussen 2005-03-20 / 15:45:10 en de datum en tijd van Nu

Ik heb al zitten rommelen met SUBTIME(), maar mijn SQL versie ondersteunt deze functie niet. :/ Ook SELECT ADDTIME in SQL heb ik mee gerommelt, maar die functie begrijp ik niet.

Heeft iemand toevallig nu een scriptje in gedachtte die mij hier verder mee kan helpen, of kan iemand die 'addtime' functie uitleggen?


De bedoeling is dat ik het ga gebruiken in een applicatie waar een soort 'timeout' in zit. Een cronjob checkt steeds of de tijd over het 'x' aantal uur zit, zo ja dan moet er een melding worden verstuurd.

Heel erg bedankt alvast!

[ Voor 4% gewijzigd door Verwijderd op 22-03-2005 09:28 . Reden: stukje duidelijker gemaakt ]


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Gebruik een query van dit formaat:
SQL:
1
SELECT UNIX_TIMESTAMP(tijdveld) ...


En dan heb je de unix timestamp van je tijd. Als je nu het verschil wilt weten tussen nu en die tijd, doe je zoiets:
PHP:
1
print(time() - $tijd);

En dan heb je het verschil in seconden.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat is al een stap in de goede richting! Bedankt!
Alleen het probleem wat er nu nog bij komt kijken is de datum.
De timeout kan namelijk ook 96 uur zijn, dus gaan er ook dagen overheen.

Hoe kan ik hier mee omgaan?

Acties:
  • 0 Henk 'm!

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05 22:30

FendtVario

The leader drives Vario!

96 uur = 96 * 3600 sec = 345.600 sec
Als je alles terugrekent naar seconden maakt het niet uit of het verschil dagen, weken of maanden is.

www.fendt.com | Nikon D7100 | PS5


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok! ik denk dat ik het nu begrijp!

Jullie plaatsen dus geen Datum+tijd in de database, maar gewoon de time() stamp (aantal seconde sinds 1970 ofzoiets lees ik ergens), en dat vergelijken jullie met die secondes van nu?

Daar kan ik zeker wat mee! Bedankt jongens, als ik nog problemen heb, dan laat ik het weten!

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-09 12:54
Kijk eens naar alle tijd en datum functies welke beschikbaar zijn in PHP. Zo kan je je timestamp mee geven aan date(), ook kun je aan geven in welk formaat je de datum wilt hebben.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
$oldtime='1111282619';
$tijdnieuw=time();

$reken=$tijdnieuw-$oldtime;
$reken=$reken/3600;

$reken=floor($reken);
echo("$reken");


:) bedankt jongens!

[ Voor 17% gewijzigd door Verwijderd op 22-03-2005 10:24 ]


Acties:
  • 0 Henk 'm!

Verwijderd

BlaatPraat = Matjo? :P
Pagina: 1