How to use JDate/nl: Difference between revisions
From Joomla! Documentation
Updating to match new version of source page |
No edit summary |
||
| Line 60: | Line 60: | ||
</source> | </source> | ||
De lokale tijdzone van de gebruiker kan worden genegeerd door een valse booleaanse waarde door te geven als functieparameter of door helemaal geen parameter door te geven. Als u een booleaanse waarde van true doorgeeft, wordt de datetime aangepast aan de tijdzone van de gebruiker. In het volgende voorbeeld is de tijdzone van de gebruiker ingesteld op "America / New_York". | |||
<source lang="php"> | <source lang="php"> | ||
Revision as of 10:33, 19 October 2019
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
De lokale tijdzone van de gebruiker kan worden genegeerd door een valse booleaanse waarde door te geven als functieparameter of door helemaal geen parameter door te geven. Als u een booleaanse waarde van true doorgeeft, wordt de datetime aangepast aan de tijdzone van de gebruiker. In het volgende voorbeeld is de tijdzone van de gebruiker ingesteld op "America / New_York".
$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)