PHP date – get naam van de maanden in de lokale taal

Ik heb dit deel van de functie, die geeft me de naam van de maanden in het engels. Hoe kan ik ze vertalen naar mijn lokale taal (servische)?

$month_name = date('F', mktime(0, 0, 0, $i));
  • strftime, en installeren van de juiste landinstellingen, & stel uw huidige landinstelling voor de servische.
InformationsquelleAutor Sasha | 2012-12-12

 

4 Replies
  1. 25

    Moet u gebruik maken van desetlocalede():

    setlocale(LC_TIME, 'fr_FR');
    $month_name = date('F', mktime(0, 0, 0, $i));

    In dit geval zou het frans. Voor uw geval moet een van de volgende handelingen uit:

    1. sr_BA – Servisch (Montenegro)
    2. sr_CS – Servisch (Servië)
    3. sr_ME – Servisch (Servië en Montenegro)
    • Dank je wel voor je hulp 🙂
    • Mijn date landinstelling is niet op de hoogte, mijn strftime is het niet. Als u de landinstelling van bewust… wat is uw PHP-versie?
    • Maar merk op dat setlocale stelt de landinstelling van het proces breed (waardoor onverwachte gedrag met meerdere threads bij het gebruik van multi-threading). Thread-safe alternatief: IntlDateFormatter
    • Deze oplossing is onjuist. Laten we zeggen dat het 2019-01-30, de functie mktime() zonder de vijfde en zesde parameter wordt de huidige dag en het jaar, dus als het 2019-01-30 en u wilt weten $i = 2 (februari), is het resultaat van Maart, omdat 2019-02-30 niet bestaan en het zal worden geïnterpreteerd als een datum in Maart. Om dit probleem te voorkomen, gebruik bijvoorbeeld: mktime(0, 0, 0, $i, 1, 2019). Hoe dan ook, geen gebruik maken van deze oplossing, omdat het de verkeerde uitslag op bepaalde data. Zo veel verkeerde antwoorden op Stackoverflow …
  2. 18

    Moet u gebruik maken van desetlocalede() en strftime():

    setlocale(LC_TIME, 'sr_CS');
    $month_name = strftime('%B', mktime(0, 0, 0, $i));
    • het heeft te maken met de tijdzone op datetime object als u gebruik setTimezone() en gebruik degettimestamp()
    • dit werkt voor mij, helaas op mijn machine setLocale() geen invloed op date()
  3. 6

    Hier is een voorbeeld met IntlDateFormatter

    $format = new IntlDateFormatter('sr_CS', IntlDateFormatter::NONE, 
                  IntlDateFormatter::NONE, NULL, NULL, "MMM");
    $monthName = datefmt_format($format, mktime(0, 0, 0, $i));
    • Hallo, hier alstublieft wijzigen van landinstellingen “en” en van maand tot en met 11. Dan blijkt mij dec en niet Nov. Kunt u een gids?
  4. 2

    Het is een goed idee te geven van de codering bij het instellen van de landinstellingen:

     <?php    
     date_default_timezone_set('Europe/Belgrade');
     setlocale(LC_TIME, array('sr_CS.UTF-8', 'sr.UTF-8'));

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *