Datum / Tijd optellen en aftrekken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen G

Jeroen G

12/08/2008 13:28:00
Quote Anchor link
Ik gebruik nu de volgende functie om de datum te pakken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    $today = date("Y-m-d G:i:s");


Nu zou ik graag de tijd van 1 uur terug hebben.. Hoe doe ik dat? Ik heb bijna geen ervaring met de datum functie.
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
 
PHP hulp

PHP hulp

22/11/2024 18:32:10
 
Bo az

Bo az

12/08/2008 13:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$today
= date("Y-m-d G:i:s", strtotime('-1 hour'));
?>


Edit: kortom, de date functie heeft een optionele 2e parameter waaraan je de te gebruiken tijd mee kan geven als deze afwijkt van de huidige tijd.

Je kan daarvoor verschillende functies gebruiken voorbeeld:
strtotime()
mktime()
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Frank -

Frank -

12/08/2008 14:47:00
Quote Anchor link
Of netjes in OOP:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$date
= new DateTime(); // zonder parameters wordt de huidige datumtijd genomen
$date->modify("-1 hour");
echo $date->format("Y-m-d H:i");
?>

Ik vind dit vele malen handiger dan de oude aanpak.

Ps. Werkt niet in ouwe PHP-versies, pas sinds versie 5.x
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jeroen G

Jeroen G

12/08/2008 18:10:00
Quote Anchor link
Die OOP ziet er wel strak uit :P
 
Dominic

Dominic

12/08/2008 18:33:00
Quote Anchor link
OOP is netter alleen die van Boaz is beter gebruikbaar (maar 1 regel)
 
Citroen Anoniem Graag

Citroen Anoniem Graag

12/08/2008 19:40:00
Quote Anchor link
Even over dat oop, is het gister zeker 1 uur besteed aan het werken met dat DateTime object: ik probeerde het in een sessie te zetten, maar als je het object dan weer wilde gebruiken, dan werkte het niet.
Heb me heel boos zitte maken totdat ik uiteindelijk dit op internet vond:

Serialization and unserialization fail for the DateTime object (PHP 5.2.5).

With your own __sleep and __wakeup function in a child class you can work around this problem.

Als je besluit met de OOP verder te gaan, neem dit dan ff mee.
 
Bo az

Bo az

12/08/2008 20:26:00
Quote Anchor link
Ook leuk om hier nog even bij te vermelden is dat er in php 5.3 nog wat extra functionaliteit in de datetime klasse komt waardoor het gebruik nog interessanter wordt.

(Welke functionaliteit? Dat weet ik zo niet uit mijn hoofd, maar o.a. iets met datums vergelijken.)

Edit:
http://www.scriptorama.nl/php/php-53-date-extensie-revisited
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Citroen Anoniem Graag

Citroen Anoniem Graag

12/08/2008 20:35:00
 
Frank -

Frank -

13/08/2008 08:37:00
Quote Anchor link
Dominic schreef op 12.08.2008 18:33:
OOP is netter alleen die van Boaz is beter gebruikbaar (maar 1 regel)
En sinds wanneer is kleiner ook beter? Korte code eindigt vaak in een onleesbare en onbruikbare klotezooi. Ik heb hier nog wel een paar honderd kleine korte scripts staan waar helemaal niemand (ook de oorspronkelijke bouwer) meer iets mee kan.

Maar goed, het kan ook in 1 regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$date
= new DateTime('-1 hour');
echo $date->format("Y-m-d H:i");
?>

1 regeltje code en klaar ben je. Oh ja, regel 2 om de boel nog even weer te geven, maar dat heeft niets met de logica te maken en wil je dus altijd apart ergens regelen.
 
Dominic

Dominic

13/08/2008 10:17:00
Quote Anchor link
pgFrank schreef op 13.08.2008 08:37:
Dominic schreef op 12.08.2008 18:33:
OOP is netter alleen die van Boaz is beter gebruikbaar (maar 1 regel)
En sinds wanneer is kleiner ook beter? Korte code eindigt vaak in een onleesbare en onbruikbare klotezooi. Ik heb hier nog wel een paar honderd kleine korte scripts staan waar helemaal niemand (ook de oorspronkelijke bouwer) meer iets mee kan.

Maar goed, het kan ook in 1 regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$date
= new DateTime('-1 hour');
echo $date->format("Y-m-d H:i");
?>

1 regeltje code en klaar ben je. Oh ja, regel 2 om de boel nog even weer te geven, maar dat heeft niets met de logica te maken en wil je dus altijd apart ergens regelen.

Dat snap ik wel, alleen dit is 1 klein regeltje, waardoor het dus geen klerezooi wordt. (scheelt weer laadtijd - 2 regels)
 
Mitch

mitch

25/09/2008 11:41:00
Quote Anchor link
is dit dan ook mogelijk met dagen??? en hoe doe je dat dan
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.