date, setlocale naar Nederlands
http://nl2.php.net/manual/en/function.setlocale.php kom ik er niet uit waarom hij nog steeds alles in het Engels laat staan.
In de onderstaande functie wil ik graag de locale setten naar het Nederlands, desondankt de PHP manual Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');
$theday = mktime (0,0,0,date("m") ,date("d")+$i ,date("Y"));
$option=date("D M j, Y",$theday);
$value=date("Y-m-d",$theday);
$dow=date("D",$theday);
if ($dow=="Sun") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Sun" and $dow!="Sat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');
$theday = mktime (0,0,0,date("m") ,date("d")+$i ,date("Y"));
$option=date("D M j, Y",$theday);
$value=date("Y-m-d",$theday);
$dow=date("D",$theday);
if ($dow=="Sun") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Sun" and $dow!="Sat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
Moet dat niet helemaal bovenaan je code? Een soort 'session_start()', dus.
Oke heb hem nu bovenaan staan, maar nog steeds is het in het engels
"To format dates in other languages, you should use the setlocale() and strftime() functions instead of date(). "
Draai lokaal een versie van Wamp dus ik gok Windows :)
Zoals Lode al zei: gebruik ipv date("Y-m-d"), strftime("Y-m-d")
Echter, ik heb nu alles vervangen en de juiste strftime tegenhanger gevonden maar de $option value blijft leeg, de $value wordt wel gevuld met de juiste datum
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
setlocale(LC_TIME, "nl_NL");
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime (0,0,0,strftime("%m") ,strftime("%d")+$i ,strftime("%Y"));
$option=strftime("%a %h %e, %Y",$theday);
$value=strftime("%Y-%m-%d",$theday);
$dow=strftime("%A",$theday);
if ($dow=="Sun") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Sun" and $dow!="Sat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
setlocale(LC_TIME, "nl_NL");
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime (0,0,0,strftime("%m") ,strftime("%d")+$i ,strftime("%Y"));
$option=strftime("%a %h %e, %Y",$theday);
$value=strftime("%Y-%m-%d",$theday);
$dow=strftime("%A",$theday);
if ($dow=="Sun") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Sun" and $dow!="Sat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
Zo kan je zien of en welke locale je systeem accepteerd.
Je kan er gewoon een hele batterij ingooien...
voor windows is het meestal nld_NLD
Ik heb de engelse afkortingen (sun, sat) vervangen naar de nederlandse (zon, zat) maar dat hielp ook niet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
setlocale(LC_TIME, "nl_NL");
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime (0,0,0,strftime("%m") ,strftime("%d")+$i ,strftime("%Y"));
$option=strftime("%a %h %e, %Y",$theday);
$value=strftime("%Y-%m-%d",$theday);
$dow=strftime("%a",$theday);
if ($dow=="Zon") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Zon" and $dow!="Zat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
setlocale(LC_TIME, "nl_NL");
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime (0,0,0,strftime("%m") ,strftime("%d")+$i ,strftime("%Y"));
$option=strftime("%a %h %e, %Y",$theday);
$value=strftime("%Y-%m-%d",$theday);
$dow=strftime("%a",$theday);
if ($dow=="Zon") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="Zon" and $dow!="Zat") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
}
?>
Ik heb voor mijn gevoel alles geprobeerd.
Bij de strftime van $option is de tweede parameter nu een integer in de vorm van een timestamp (de echo $test)
theday_oud1249941600
optie:_oudTue Aug 11, 2009
value:_oud2009-08-11
dow_oudTue
theday_nieuw1249941600
optie_nieuw
value_nieuw2009-08-11
dow_nieuwdi
test1249984578
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'Dutch_Netherlands', 'Dutch', 'nl_NL', 'nl', 'nl_NL.ISO8859-1', 'nl_NL.UTF-8', 'nld_nld', 'nld', 'nld_NLD', 'NL_nl');
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) ;
$theday_new = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) /* strftime("%m %d %Y") */;
$option= date("D M j, Y",$theday) ;
$option_new = strftime("%a,%b,%e,%Y", strtotime("+$i day"));
$test = strtotime("+$i day");
$value= date("Y-m-d",$theday) ;
$value_new = strftime("%Y-%m-%d", strtotime("+$i day"));
$dow= date("D",$theday) ;
$dow_new = strftime("%a", strtotime("+$i day"));
if ($dow=="zo") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="zo" and $dow!="za") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
echo '<br>' . 'theday_oud' . $theday . '<br>';
echo 'optie:_oud' . $option . '<br>';
echo 'value:_oud' . $value . '<br>';
echo 'dow_oud' . $dow . '<br>';
echo '<br>' . 'theday_nieuw' . $theday_new . '<br>';
echo 'optie_nieuw' . $option_new . '<br>';
echo 'value_nieuw' . $value_new . '<br>';
echo 'dow_nieuw' . $dow_new . '<br>';
echo 'test' . $test . '<br>';
}
?>
/* Set locale to Dutch */
setlocale(LC_ALL, 'Dutch_Netherlands', 'Dutch', 'nl_NL', 'nl', 'nl_NL.ISO8859-1', 'nl_NL.UTF-8', 'nld_nld', 'nld', 'nld_NLD', 'NL_nl');
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo "<select name=" . $default . " STYLE=\"font-family: monospace;\">\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) ;
$theday_new = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) /* strftime("%m %d %Y") */;
$option= date("D M j, Y",$theday) ;
$option_new = strftime("%a,%b,%e,%Y", strtotime("+$i day"));
$test = strtotime("+$i day");
$value= date("Y-m-d",$theday) ;
$value_new = strftime("%Y-%m-%d", strtotime("+$i day"));
$dow= date("D",$theday) ;
$dow_new = strftime("%a", strtotime("+$i day"));
if ($dow=="zo") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected="SELECTED";
} else {
$selected="";
}
if (($dow!="zo" and $dow!="za") or !$skip) {
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
}
}
echo "</select>\n";
echo '<br>' . 'theday_oud' . $theday . '<br>';
echo 'optie:_oud' . $option . '<br>';
echo 'value:_oud' . $value . '<br>';
echo 'dow_oud' . $dow . '<br>';
echo '<br>' . 'theday_nieuw' . $theday_new . '<br>';
echo 'optie_nieuw' . $option_new . '<br>';
echo 'value_nieuw' . $value_new . '<br>';
echo 'dow_nieuw' . $dow_new . '<br>';
echo 'test' . $test . '<br>';
}
?>
Ziet iemand het foutje? :(
verander deze regel
echo "<option value='". $value ."' ".$selected.">'" . $option . "'</option>\n";
ook je naam van je select box is een STRING! maak er een STRING van!
<br> moet <br /> zijn (Xhtml)
wat doen al die \ in je script? wegdoen!
vb:
STYLE=\"font-family: monospace;\">
naar
STYLE='font-family: monospace;'>
en programmeer een keer mooi...dan maakt het voor ons makkelijker.
ik wil je ook erop wijzen dat je consequent moet zijn!
de ene keer open je echo met dubbele quotes en de andere keer met enkele...reden daarvoor?
en SELECTED wordt anders gebruikt! dat is veroudert zoals jij het doen!
zie Xhtml handleiding (BASIS)
Tikkes schreef op 13.02.2009 12:23:
echo "<option value=\"". $value . "\" $selected>" . $option . "</option>\n";
verander deze regel
echo "<option value='". $value ."' ".$selected.">'" . $option . "'</option>\n";
ook je naam van je select box is een STRING! maak er een STRING van!
<br> moet <br /> zijn (Xhtml)
wat doen al die \ in je script? wegdoen!
vb:
STYLE=\"font-family: monospace;\">
naar
STYLE='font-family: monospace;'>
en programmeer een keer mooi...dan maakt het voor ons makkelijker.
ik wil je ook erop wijzen dat je consequent moet zijn!
de ene keer open je echo met dubbele quotes en de andere keer met enkele...reden daarvoor?
en SELECTED wordt anders gebruikt! dat is veroudert zoals jij het doen!
zie Xhtml handleiding (BASIS)
verander deze regel
echo "<option value='". $value ."' ".$selected.">'" . $option . "'</option>\n";
ook je naam van je select box is een STRING! maak er een STRING van!
<br> moet <br /> zijn (Xhtml)
wat doen al die \ in je script? wegdoen!
vb:
STYLE=\"font-family: monospace;\">
naar
STYLE='font-family: monospace;'>
en programmeer een keer mooi...dan maakt het voor ons makkelijker.
ik wil je ook erop wijzen dat je consequent moet zijn!
de ene keer open je echo met dubbele quotes en de andere keer met enkele...reden daarvoor?
en SELECTED wordt anders gebruikt! dat is veroudert zoals jij het doen!
zie Xhtml handleiding (BASIS)
Ik heb de functie van iemand anders, daarom zit er een verschil in stijl.
Hij werkt met de stijl die hierboven staat, alleen laat hij dan alles in het Engels zien.
Ik heb toen de date() vervangen zodat ik met een set_locale kon gaan werken, echter nu is het enige wat niet werkt de $option.
EDIT: heb de code "opgeschoond", alle ingesprongen variabelen eindigd op _new en de ingesprongen echo's zijn om te testen en om hem werkend te laten krijgen.
Kan iemand zien waarom er in $option_new geen datum komt te staan, in $option staat hoe het orgineel was in de functie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'Dutch_Netherlands', 'Dutch', 'nl_NL', 'nl', 'nl_NL.ISO8859-1', 'nl_NL.UTF-8', 'nld_nld', 'nld', 'nld_NLD', 'NL_nl');
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo '<select name="' . $default . '" STYLE="font-family: monospace;">' . "\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) ;
$theday_new = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) /* strftime("%m %d %Y") */;
$option= date("D M j, Y",$theday) ;
$option_new = strftime("%a,%b,%e,%Y", strtotime("+$i day"));
$test = strtotime("+$i day");
$value= date("Y-m-d",$theday) ;
$value_new = strftime("%Y-%m-%d", strtotime("+$i day"));
$dow= date("D",$theday) ;
$dow_new = strftime("%a", strtotime("+$i day"));
if ($dow=="zo") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected= 'select="SELECTED"';
} else {
$selected="";
}
if (($dow!="zo" and $dow!="za") or !$skip) {
echo '<option value="' . $value . '" ' .$selected. '>' . $option . '</option>' . "\n";
}
}
echo '</select>' . "\n";
echo '<br/>' . 'theday_oud' . $theday . '<br/>';
echo 'optie:_oud' . $option . '<br/>';
echo 'value:_oud' . $value . '<br/>';
echo 'dow_oud' . $dow . '<br/>';
echo '<br/>' . 'theday_nieuw' . $theday_new . '<br/>';
echo 'optie_nieuw' . $option_new . '<br/>';
echo 'value_nieuw' . $value_new . '<br/>';
echo 'dow_nieuw' . $dow_new . '<br/>';
echo 'test' . $test . '<br/>';
}
?>
/* Set locale to Dutch */
setlocale(LC_ALL, 'Dutch_Netherlands', 'Dutch', 'nl_NL', 'nl', 'nl_NL.ISO8859-1', 'nl_NL.UTF-8', 'nld_nld', 'nld', 'nld_NLD', 'NL_nl');
//datepicker.inc
function DateDropDown($size,$default,$skip) {
// $size = aantal datums weergeven vanaf huidige datum
// $default = formuliernaam
// $skip = 1 als je alleen een werkweek wilt
echo '<select name="' . $default . '" STYLE="font-family: monospace;">' . "\n";
for ($i = 0; $i <= $size; $i++) {
$theday = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) ;
$theday_new = mktime(0,0,0,date("m") ,date("d")+$i ,date("Y")) /* strftime("%m %d %Y") */;
$option= date("D M j, Y",$theday) ;
$option_new = strftime("%a,%b,%e,%Y", strtotime("+$i day"));
$test = strtotime("+$i day");
$value= date("Y-m-d",$theday) ;
$value_new = strftime("%Y-%m-%d", strtotime("+$i day"));
$dow= date("D",$theday) ;
$dow_new = strftime("%a", strtotime("+$i day"));
if ($dow=="zo") {
echo "<option disabled> </option>\n";
}
if ($value == $default) {
$selected= 'select="SELECTED"';
} else {
$selected="";
}
if (($dow!="zo" and $dow!="za") or !$skip) {
echo '<option value="' . $value . '" ' .$selected. '>' . $option . '</option>' . "\n";
}
}
echo '</select>' . "\n";
echo '<br/>' . 'theday_oud' . $theday . '<br/>';
echo 'optie:_oud' . $option . '<br/>';
echo 'value:_oud' . $value . '<br/>';
echo 'dow_oud' . $dow . '<br/>';
echo '<br/>' . 'theday_nieuw' . $theday_new . '<br/>';
echo 'optie_nieuw' . $option_new . '<br/>';
echo 'value_nieuw' . $value_new . '<br/>';
echo 'dow_nieuw' . $dow_new . '<br/>';
echo 'test' . $test . '<br/>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Richard Duinmayer
%e wil niet werken met een strftime(), dus heb ik hier maar %d gemaakt (met voorloop 0) en dat werkt wel.
Heeft iemand een verklaring voor dat %e niet werkt?