Awais Qarni
Awais Qarni

Reputation: 18016

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

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

Upvotes: 3

Views: 16140

Answers (2)

matino
matino

Reputation: 17725

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.

Upvotes: 6

Moz Morris
Moz Morris

Reputation: 6771

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

Upvotes: 6

Related Questions