Get Locale Date in PHP - 2022


Question: Get Locale Date in PHP - 2022

How should I get the Day and Month (i.e. Friday, August) with the corresponding locale (i.e. de_DE) in PHP?

Most examples use setlocale() and strftime(), the last one being deprecated as of PHP 8.1.0.

Total Answers: 1


Answers 1: of Get Locale Date in PHP - 2022

You are correct about strftime() being deprecated, and date() (being a part of DateTimeInterface) will not work with setlocale(). One thing that will work with it is IntlDateFormatter:

$fmt = new IntlDateFormatter('de_DE',     IntlDateFormatter::FULL,      IntlDateFormatter::FULL );  echo $fmt->format(time()); 

Will output:

Samstag, 27. August 2022 00:58:15 GMT

You can play around with the Predefined Constants to specify different formats for the DateType and TimeType. I used FULL for my example. Read more here.

You can also change the Pattern

$fmt->setPattern('yyyymmdd hh:mm:ss z'); echo $fmt->format(time()); 

To output (for example):

20220427 01:04:51 GMT