date, setlocale naar Nederlands

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Duinmayer

Richard Duinmayer

09/02/2009 21:22:00
Quote Anchor link
In de onderstaande functie wil ik graag de locale setten naar het Nederlands, desondankt de PHP manual http://nl2.php.net/manual/en/function.setlocale.php kom ik er niet uit waarom hij nog steeds alles in het Engels laat staan.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>&nbsp;</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";
}

?>
 
PHP hulp

PHP hulp

24/11/2024 15:19:39
 
Jesper Diovo

Jesper Diovo

09/02/2009 21:59:00
Quote Anchor link
Moet dat niet helemaal bovenaan je code? Een soort 'session_start()', dus.
 
Richard Duinmayer

Richard Duinmayer

09/02/2009 22:06:00
Quote Anchor link
Oke heb hem nu bovenaan staan, maar nog steeds is het in het engels
 
Tamara

Tamara

09/02/2009 22:09:00
Quote Anchor link
is de server Windows of Linux?

edit:

Probeer anders is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
setlocale(LC_ALL, 'nl_NL');
?>
Gewijzigd op 01/01/1970 01:00:00 door Tamara
 
Lode

Lode

09/02/2009 22:10:00
Quote Anchor link
zie handleiding!!!!

"To format dates in other languages, you should use the setlocale() and strftime() functions instead of date(). "
 
Richard Duinmayer

Richard Duinmayer

09/02/2009 22:10:00
Quote Anchor link
Draai lokaal een versie van Wamp dus ik gok Windows :)
 
Tamara

Tamara

09/02/2009 22:12:00
Quote Anchor link
Zoals Lode al zei: gebruik ipv date("Y-m-d"), strftime("Y-m-d")
 
Richard Duinmayer

Richard Duinmayer

09/02/2009 22:22:00
Quote Anchor link
Oke heb nu strftime gebruikt, wat een gedoe zeg. Het is zeker makkelijker om standaard strftime te gebruiken?

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>&nbsp;</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";
}

?>
 
Lode

Lode

09/02/2009 22:23:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$locale
= setlocale(/**/);
echo $locale.'<br />';
?>


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
 
Richard Duinmayer

Richard Duinmayer

09/02/2009 23:00:00
Quote Anchor link
Ik heb de date() vervangen, echter wordt de $option nu niet meer zichtbaar.

Ik heb de engelse afkortingen (sun, sat) vervangen naar de nederlandse (zon, zat) maar dat hielp ook niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>&nbsp;</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";
}

?>
 
Richard Duinmayer

Richard Duinmayer

12/02/2009 12:06:00
Quote Anchor link
Ok heb nu een hoop geprobeerd, maar krijg die option echt niet goed.
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>&nbsp;</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>';
}

?>
 
Richard Duinmayer

Richard Duinmayer

13/02/2009 12:13:00
Quote Anchor link
Ziet iemand het foutje? :(
 
Tikkes C

Tikkes C

13/02/2009 12:23:00
Quote Anchor link
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)
 
Richard Duinmayer

Richard Duinmayer

13/02/2009 13:27:00
Quote Anchor link
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)




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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>&nbsp;</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
 
Richard Duinmayer

Richard Duinmayer

13/02/2009 15:37:00
Quote Anchor link
Oke ik ben eruit, soort van.

%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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.