PHP
Datetime Class
Zoeken…
getTimestamp
getTimeStemp
is een unix-weergave van een datetime-object.
$date = new DateTime();
echo $date->getTimestamp();
dit geeft een integer indicatie van de seconden die zijn verstreken sinds 00:00:00 UTC, donderdag 1 januari 1970.
setDate
setDate
stelt de datum in een DateTime-object in.
$date = new DateTime();
$date->setDate(2016, 7, 25);
dit voorbeeld stelt de datum in op vijfentwintig juli 2015 en levert het volgende resultaat op:
2016-07-25 17:52:15.819442
Datumintervallen optellen of aftrekken
We kunnen de klasse DateInterval gebruiken om een interval in een DateTime-object toe te voegen of af te trekken.
Zie het onderstaande voorbeeld, waarbij we een interval van 7 dagen toevoegen en een bericht op het scherm afdrukken:
$now = new DateTime();// empty argument returns the current date
$interval = new DateInterval('P7D');//this objet represents a 7 days interval
$lastDay = $now->add($interval); //this will return a DateTime object
$formatedLastDay = $lastDay->format('Y-m-d');//this method format the DateTime object and returns a String
echo "Samara says: Seven Days. You'll be happy on $formatedLastDay.";
Dit wordt uitgevoerd (uitgevoerd op 1 augustus 2016):
Samara zegt: Seven Days. Je zult blij zijn op 08-08-2016.
We kunnen de submethode op een vergelijkbare manier gebruiken om datums af te trekken
$now->sub($interval);
echo "Samara says: Seven Days. You were happy last on $formatedLastDay.";
Dit wordt uitgevoerd (uitgevoerd op 1 augustus 2016):
Samara zegt: Seven Days. Je was laatst blij op 25-07-2016.
Maak DateTime van aangepaste indeling
PHP kan een aantal datumformaten ontleden. Als u een niet-standaardindeling wilt parseren of als u in uw code expliciet de te gebruiken indeling wilt vermelden, kunt u de statische methode DateTime::createFromFormat
gebruiken:
Object georiënteerde stijl
$format = "Y,m,d";
$time = "2009,2,26";
$date = DateTime::createFromFormat($format, $time);
Procedurele stijl
$format = "Y,m,d";
$time = "2009,2,26";
$date = date_create_from_format($format, $time);
Datum afdrukken
PHP 4+ biedt een methode, formaat dat een DateTime-object omzet in een string met een gewenst formaat. Volgens PHP Manual is dit de objectgeoriënteerde functie:
public string DateTime::format ( string $format )
De functie date () heeft één parameter - een opmaak, wat een string is
Formaat
De indeling is een tekenreeks en gebruikt enkele tekens om de indeling te definiëren:
- Y : viercijferige weergave van het jaar (bijvoorbeeld: 2016)
- y : tweecijferige weergave van het jaar (bijvoorbeeld: 16)
- m : maand, als een getal (01 tot 12)
- M : maand, als drie letters (jan, feb, mrt, enz.)
- j : dag van de maand, zonder voorloopnullen (1 tot 31)
- D : dag van de week, als drie letters (ma, di, wo, enz.)
- h : uur (12-uursnotatie) (01 tot 12)
- H : uur (24-uursnotatie) (00 tot 23)
- A : AM of PM
- i : minuut, met voorloopnullen (00 tot 59)
- s : tweede, met voorloopnullen (00 tot 59)
- De volledige lijst is te vinden hier
Gebruik
Deze tekens kunnen in verschillende combinaties worden gebruikt om tijden in vrijwel elk formaat weer te geven. Hier zijn enkele voorbeelden:
$date = new DateTime('2000-05-26T13:30:20'); /* Friday, May 26, 2000 at 1:30:20 PM */
$date->format("H:i");
/* Returns 13:30 */
$date->format("H i s");
/* Returns 13 30 20 */
$date->format("h:i:s A");
/* Returns 01:30:20 PM */
$date->format("j/m/Y");
/* Returns 26/05/2000 */
$date->format("D, M j 'y - h:i A");
/* Returns Fri, May 26 '00 - 01:30 PM */
procedureel
Het procedurele formaat is vergelijkbaar:
Object-Oriented
$date->format($format)
Procedureel equivalent
date_format($date, $format)
Maak een onveranderlijke versie van DateTime van Mutable voorafgaande PHP 5.6
Gebruik \DateTimeImmutable
in PHP 5.6+ als volgt:
\DateTimeImmutable::createFromMutable($concrete);
Voorafgaande PHP 5.6 kunt u gebruiken:
\DateTimeImmutable::createFromFormat(\DateTime::ISO8601, $mutable->format(\DateTime::ISO8601), $mutable->getTimezone());