how to convert english date format to german date format in php

12,436

Solution 1

You could use setlocale function before calling date function:

$newLocale = setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');

EDIT: Quote from strftime docs:

This example will work if you have the respective locales installed in your system.

Solution 2

If you have the Internationalization extension installed, you can use the IntlDateFormatter class.

It's really quite powerful and actually displays the date and time in the correct format for the locale you're targeting.

An example, for Germany might be:

// create format
$fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);

// output (using current time)
echo datefmt_format($fmt , time());

Which outputs:

Dienstag, 29. November 2011

Share:
12,436
Awais Qarni
Author by

Awais Qarni

Full stack web developer having experience in multiple technologies and frameworks including PHP (Zend, Laravel, CakePHP), Ruby (ROR), Javascript (jQuery, Backbone.JS, Ember.JS).

Updated on June 28, 2022

Comments

  • Awais Qarni
    Awais Qarni almost 2 years

    Hi I have a date format like this

    (in English format)

     15. July 2011
    

    And I want to convert it in German format like this

    15. Juli 2011
    

    How to convert date format from one laguage to other language format?

    My Code is

     $date = '15. July 2011';
     $newLocale = setlocale(LC_TIME, 'de_DE');
     $date = strftime('%d. %B %Y',$date);
    

    But this is not converting I am getting July rather than Juli