Maanden in Nederlnads

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.260
Hallo

Onderstaand stukje code om een maand en jaar te selecteren via select

PHP:
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
$year = (int)  ($_GET['year'] ? $_GET['year'] : date('Y'));

/* select month control */
$select_month_control = '<select name="month" id="month">';
for($x = 1; $x <= 12; $x++) {
	$select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
}

Ik krijg de maanden nu in het Engels , iemand een idee hoe deze in Nl te krijgen?

PHP:
'.date('F',mktime(0,0,0,$x,1,$year)).'
 
gebruik strftime() i.p.v. date() en lees de manual van die functie. dan kan je met setlocale() de boel in het Nederlands zetten.
 
Bedankt PHP4U,

Werkt goed met
PHP:
setlocale(LC_ALL, 'nl_NL', 'dutch');

PHP:
'.strftime('%B',mktime(0,0,0,$x,1,$year)).


Voor als er geen Get var is heb ik:

Code:
 if (empty($_GET['month']) && empty($_GET['year'])) {
                   $month  = date("m");
                   $year  = date("Y");
               } else {
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
$year = (int)  ($_GET['year'] ? $_GET['year'] : date('Y'));        }

Deze regel zegt me niks (2ehelft)
PHP:
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
 
Geen date() gebruiken maar strftime()
 
Als je problemen hebt met setlocale, strftime, gmstrftime, de Windows bug of de Solaris afwijking dan kan je het met een omweg doen
Code:
$dag = array("zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag");
$ddd = $dag[(int)strftime("%w")];
$mnd = array("januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december");
$mmm = $mnd[(int)strftime("%m")-1];
$day = (strtoupper(substr(PHP_OS,0,3))=='WIN') ? preg_replace('#(?<!%)((?:%%)*)%e#','\1%#d','%e') : '%e';
echo $ddd . " " . trim(strftime($day)) . " " . $mmm . strftime("%Y");
Suc6. have fun.
 
Deze regel zegt me niks (2ehelft)
PHP:
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
[/QUOTE]

$month is variable, zal je wel weten maar ik ga voor volledig
(int) is casten naar een integer dus er komt een string binnen en omdat de persoon het zeker als getal wil wordt er gecast
($_GET['month'] ? $_GET['month'] : date('m')); moet je zien als (vergelijking ? voorwaarde1 : voorwaarde2)
nu de haakje dienen omdat het anders niet volledig het zelfde is, omdat je ook een vergelijken achteraan kan plaatsen in php.
dus de voorwaarde achteraan plaatsen gebeurt zelden en is als goto niet gewenst maar deze bijde werken wel.
 
Laatst bewerkt:
Allen bedankt voor de info.

Voorziet onderstaande nu in een huidige maand indien GET leeg is?

PHP:
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
 
Voorziet onderstaande nu in een huidige maand indien GET leeg is?
Hieronder kan korter maar ik heb het transparant gehouden met commentaar regels erbij.
Code:
// IF ['month'] is leeg THEN $month = huidige maand ELSE $month = ['month']
$month = (empty($_GET['month'])) ? strftime("%m") : $_GET['month'];
// maand wijzigen van tekst (string) naar getal (integer)
$month = (int)$month;
* Beter is het om POST te gebruiken in plaats van GET, simpel om de reden dat iedereen bij GET de url kan veranderen en bijvoorbeeld month=13 kan invullen of door vanaf de = alles weg te halen (example.nl?month). Je hebt met GET in je php veel werk om alles veilig en idiot-proof te maken.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan