De opdracht is,

laat de dag van vandaag zien
de hoeveelste dag van het jaar
Welke maand het is
hoeveel dagen heeft de huidige maand

dit is wat ik nu heb,


<?php
$datum = date("j F Y");
$dagvanweek = date("l");
$arraydag = array(
"zondag",
"maandag",
"dinsdag",
"woensdag",
"donderdag",
"vrijdag",
"zaterdag"
);
$dagvanweek = $arraydag[date("w")];
$arraymaand = array(
"januari",
"februari",
"maart",
"april",
"mei",
"juni",
"juli",
"augustus",
"september",
"oktober",
"november",
"december"
);
$datum = date("j ") . $arraymaand
[date("n") - 1] . date(" Y");
echo "Vandaag is het $dagvanweek, $datum.";  
?>
Dit had ik inderdaad al bekeken.
helaas wordt ik hier niet veel wijzer uit.
Dan zal je toch een gerichte vraag moeten stellen.
Wij maken namelijk geen huiswerk voor anderen.
Soms is het best nuttig om huiswerk te maken. Want wat moet je met een antwoord als je niet kunt uitleggen hoe je er toe gekomen bent? Hier is alvast een antwoord:
<?php
header('Content-type: text/plain');
extension_loaded('intl') or die('intl extentie afwezig');
define('EOL', "\r\n", FALSE);
Locale::setDefault('nl-NL');   // RFC 4646

$oTijdzone = IntlTimeZone::createTimeZone('Europe/Amsterdam');
$sLocale = Locale::getDefault() . '@calendar=gregorian';
$oKalender = IntlCalendar::createInstance($oTijdzone, $sLocale);
$oFormatter = new IntlDateFormatter(
  Locale::getDefault(),
  IntlDateFormatter::FULL,  // datum
  IntlDateFormatter::NONE,  // tijd
  $oTijdzone,
  IntlDateFormatter::GREGORIAN,
  'eeee, d MMMM y'  // http://userguide.icu-project.org/formatparse/datetime
);

print
  'Vandaag is het ' . $oFormatter->format($oKalender) . '.' . EOL
. 'Dit is de ' . $oKalender->get(IntlCalendar::FIELD_DAY_OF_YEAR)
. 'e dag van het jaar.' . EOL
. 'Dit is de ' . ($oKalender->get(IntlCalendar::FIELD_MONTH) + 1)
. 'e maand van het jaar.' . EOL
. 'De huidige maand heeft ' . $oKalender->getActualMaximum(
  IntlCalendar::FIELD_DAY_OF_MONTH) . ' dagen.' . EOL
. 'Het huidige jaar is ' . ($oKalender->getActualMaximum(
  IntlCalendar::FIELD_MONTH) == 11 ? 'g' : 'wel ') . 'een schrikkeljaar.' . EOL
  ;
?>

Voorbeelduitvoer:
Vandaag is het donderdag, 21 april 2016.
Dit is de 112e dag van het jaar.
Dit is de 4e maand van het jaar.
De huidige maand heeft 30 dagen.
Het huidige jaar is geen schrikkeljaar.
An tje op 21/04/2016 22:45:14

Voorbeelduitvoer:

Vandaag is het donderdag, 21 april 2016.
Dit is de 112e dag van het jaar.
Dit is de 4e maand van het jaar.
De huidige maand heeft 30 dagen.
Het huidige jaar is geen schrikkeljaar.

LOL! En dat tegen middernacht!
En, hoe jij het verbeteren, zonder date('L') ?
Ah, ik ben er al, verkeerde property gebruikt.. Erratum:
. 'Het huidige jaar is ' . ($oKalender->get(
  IntlCalendar::FIELD_DAY_OF_YEAR) == 365  ? 'g' : 'wel ') . 'een schrikkeljaar.' . EOL
  ;

Voorbeelduitvoer:
Het huidige jaar is wel een schrikkeljaar.
ik gebruik Xampp, en krijg deze foutmelding

intl extentie afwezig?

alvast bedankt!
Uhm, tsja, de intl-extentie moet wel zijn geladen in XAMPP, en kennelijk heb je dat dan nog niet. Wijzen naar de documentatie op php.net (http://php.net/manual/en/intl.requirements.php) heeft in jouw geval weinig zin, maar er staat dat het meegeleverd wordt vanaf PHP 5.3, dus waarschijnlijk hoef je de extentie alleen nog maar aan te zetten, ofwel te laden bij het starten van PHP.
Je bent uiteraard niet de enige die dit probleem met XAMPP heeft, het antwoord is al een keer eerder gegeven op StackOverflow:
http://stackoverflow.com/questions/33869521/how-can-i-enable-php-extension-intl
Enige nadeel is dat het artikel in het Engels is..
XAMPP heeft inderdaad php_intl.dll aan boord. Je moet de extensie alleen nog even inschakelen.

1. Open php.ini in \xampp\php\.

2. Verwijder de commentaar-puntkomma voor de regel:

;extension=php_intl.dll

3. Start Apache opnieuw op.
Dankjewel Ward, voor de nederlandstalige uitwerking :-)
Addendum: in XAMPP kan je het configuratiebestand php.ini ook openen via het XAMPP Control Panel naar een teksteditor, als ik het me goed herinner door achter Apache op de knop Config te drukken.
Na het aanpassen kan je Apache eenvoudig opnieuw starten weer via het XAMPP Control Panel, door eerst op Stop te klikken, te wachten (dan verandert de knoptekst Stop naar Start) en dan weer op Start te drukken. Nog even wachten en dan verschijnt een melding dat Apache is gestart.
Vervolgens kan je de code nog eens problemen uit te voeren, en dan moet de melding dat de intl extentie afwezig is plaats gemaakt hebben voor een uitvoer vergelijkbaar met de voorbeelduitvoer.

Reageren