Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get current date and time in WordPress?

As you may know it's highly recommended by WordPress to theme/plugin authors to don't change the WordPress timezone by PHP functions like date_default_timezone_set.

I addition to that you may receive wrong date and time values when you use php date function because of not setting default timezone by PHP.

I mean you may receive 10 for date('G') while the exact hour is 15 in the selected timezone in WordPress->Settings->General->Timezone option.

So what should you do if you need the correct date and time values in selected timezone for WordPress website?

like image 892
Hossein Avatar asked Dec 23 '22 18:12

Hossein


1 Answers

WordPress 5.3+

You can use current_datetime function. It returns a DateTimeImmutable object with the timezone selected in WordPress general options. Then you can use format or other methods of the object to get your desired date and time.

$current_datetime = current_datetime()->format('Y-m-d H:i:s');

Prior to WordPress 5.3

You should use current_time function of WordPress instead of PHP date function for getting local date and time in WordPress. It will return correct value for you based on selected timezone in WordPress general options.

For me current_time('G') returns exactly 15 while PHP date('G') returns 10 which is not correct.

Hope it helps somebody since I didn't find related thread in the stackoverflow.

like image 160
Hossein Avatar answered Dec 27 '22 10:12

Hossein