Hoe JDate gebruiken

From Joomla! Documentation

This page is a translated version of the page How to use JDate and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎Nederlands • ‎русский

Inleiding

JDate is een helper class, afgeleid van de PHP DateTime class, die ontwikkelaars de mogelijkheid geeft het datumformaat efficiënter af te handelen. De class helpt ontwikkelaars om datums op te maken tot leesbare strings, MySQL interactie, UNIX tijd berekeningen en levert ook helper-methodes bij het werken in andere tijdzones.

JDate gebruiken

Een JDate instantie maken

Alle datum helper methodes vereisen een instantie van de JDate class. Om te beginnen moet u er een aanmaken. Een JDate object kan op twee manieren aangemaakt worden. Eén is de oorspronkelijke methode door eenvoudigweg een nieuwe instantie aan te maken:

$date = new JDate(); // Creates a new JDate object equal to the current time.

U kunt ook een instantie aanmaken met behulp van de statische methode gedefinieerd in JDate:

$date = JDate::getInstance(); // Alias of 'new JDate();'

Er is geen verschil tussen deze twee methodes, aaangezien JDate::getInstance eenvoudig een instantie maakt van JDate, precies zoals de eerste getoonde methode.

Als alternatief kunt u de huidige datum (als JDate object) ook uit JApplication halen, door te gebruiken:

$date = JFactory::getDate();

Argumenten

De JDate constructor (en de getInstance statische methode) accepteert twee optionele parameters: Een datumstring om te formatteren, en een tijdzone. Het niet doorgeven van een datumstring zal een JDate object aanmaken met de huidige datum en tijd, terwijl het niet doorgeven van een tijdzone het JDate object zal toestaan de standaard ingestelde tijdzone te gebruiken.

Het eerste argument, indien gebruikt, moet een string zijn die kan worden verwerkt met behulp van php's eigen DateTime constructor. Bijvoorbeeld:

$currentTime = new JDate('now'); // Current date and time
$tomorrowTime = new JDate('now +1 day'); // Current date and time, + 1 day.
$Plus1MonthTime = new JDate('now +1 month'); // Current date and time, + 1 month.
$Plus1YearTime = new JDate('now +1 year'); // Current date and time, + 1 year.
$Plus1YearAnd1MonthTime = new JDate('now +1 year +1 month'); // Current date and time, + 1 year and 1 month.
$PlusTimeToTime = new JDate('now +1 hour +30 minutes +3 seconds'); // Current date and time, + 1 hour, 30 minutes and 3 seconds
$PlusTimeToTime = new JDate('now -1 hour +30 minutes +3 seconds'); // Current date and time, + 1 hour, 30 minutes and 3 seconds
$CombinedTimeToTime = new JDate('now -1 hour -30 minutes 23 seconds'); // Current date and time, - 1 hour, +30 minutes and +23 seconds

$date = new JDate('2012-12-1 15:20:00'); // 3:20 PM, December 1st, 2012

Voorbeelden

Voorbeeld van datumnotaties

JFactory::getDate() krijgt een JDate object en we voeren daarna de JDate toFormat functie uit

JFactory::getDate()->toFormat('%a %d %b %Y - %H:%M')

In de Joomla! CMS 3.3 API is de functie "toFormat" veranderd in "format", zodat bovenstaande voorbeeld zou moeten worden:

JFactory::getDate()->format('%a %d %b %Y - %H:%M')

Functie: toISO8601(boolean $local = false) : string

$date = new JDate('2016-01-01 02:00:00'); // A.M. time, in GMT timezone

We stellen de functie parameter voor in op "false" en na op "true" (gebruiker tijdzone is ingesteld op "America/New_York"), we krijgen:

$timezone = new DateTimeZone( JFactory::getUser()->getParam('timezone') );
$date->setTimezone($timezone);
echo $date->toISO8601(false); // 2016-01-01 T 02:00:00 +00:00
echo $date->toISO8601(true); // 2015-12-31 T 21:00:00-05:00 (local time in New York)