login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tijds vraag

Offline elian - 14/01/2012 16:30 (laatste wijziging 14/01/2012 16:31)
Avatar van elianLid Beste,
Ik heb in mijn database een kolom datetime
met een insert gaat NOW() erin

nu mijn vraag, ik zou graag willen weten hoe ik het volgende kan berekenen:


$today = date("Y-m-d G:i:s", strtotime('-1 hour'));


met de tijd die uit de kolom datetime komt.

met dank

4 antwoorden

Gesponsorde links
Offline MiST - 14/01/2012 19:01 (laatste wijziging 14/01/2012 19:01)
Avatar van MiST Lid Wel, als je er de documentatie van PHP op naleest, is dat eenvoudig. strtotime geeft je een integer terug, de timestamp. Een timestamp is gewoon het aantal seconden sinds 1 januari 1970. En dus...

In de veronderstelling dat je kolom in de associatieve array $col zit:

  1. // Tijd - 1 uur(= 60 minuten * 60 seconden = 3600)
  2. $timeMinusOneHour = strtotime($col['datetime']) - 3600;
  3. $string = date('Y-m-d G:i:s', $timeMinusOneHour);


Offline WouterJ - 14/01/2012 20:09 (laatste wijziging 14/01/2012 20:17)
Avatar van WouterJ HTML gevorderde Nu kun je dit ook oplossen met alleen SQL:
  1. SELECT
  2. DATE_FORMAT(datumveld - INTERVAL 1 HOUR, '%Y-%m-%d %G:%i:%s') AS date
  3. FROM
  4. someTable


@MiST, in PHP kun je hiervoor gewoon PHP.net: strtotime gebruiken:
  1. $tijd = date('Y-m-d G:i:s', strtotime($row['date'].' - 1 hour'));
Offline elian - 15/01/2012 04:47
Avatar van elian Lid bedankt mensen
Offline MiST - 15/01/2012 12:13
Avatar van MiST Lid @WouterJ. Hoewel het perfect mogelijk is, vind ik dergelijke constructies precies intuïtief gevaarlijk (echter geen idee waarom). Het is het ook net een tikkeltje trager, al is het verschil nauwelijks merkbaar: 1.367 seconden op 1 miljoen uitvoeringen kan je eigenlijk verwaarloosbaar noemen.

  1. MiST@mist-notebook /tmp
  2. $ time php mine.php
  3.  
  4. real 0m48.868s
  5. user 0m0.000s
  6. sys 0m0.015s
  7.  
  8. MiST@mist-notebook /tmp
  9. $ time php yours.php
  10.  
  11. real 0m50.235s
  12. user 0m0.000s
  13. sys 0m0.031s

Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s