Gislef
Gislef

Reputation: 1637

Print the current date - Wordpress

If I use

<?php echo get_the_date(); ?>

this prints on homepage "04 de novembro de 2017" This is okay because of the project language is portuguese.

but if I put this on the page, single or archive, it shows the date when it was created

How do I print the current date on any page in the format "04 de novembro de 2017" ?

Upvotes: 3

Views: 24739

Answers (3)

JNAK
JNAK

Reputation: 291

If you use the PHP date() function, there will be cases where this will cause issues. This will output the date based on PHP which is the server's time, UTC, not the Local Time WP is set. You will be displaying the wrong date/time for around a day unless your timezone is indeed UTC+0.

Use the wp_date function instead for a more accurate date output. More information:

https://developer.wordpress.org/reference/functions/wp_date/

It uses the same parameters with the PHP date() function which you can use to pass:

echo wp_date('l jS \of F Y');

Use this to display the output in the timezone you have set in WordPress and prevent displaying server UTC time. Assuming that the local timezone which is what you want.

Don't forget to change the locale to your language to translate the output.

setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');

Upvotes: 0

Morshed Alam Sumon
Morshed Alam Sumon

Reputation: 39

This works fine for me:

echo date(get_option('date_format')); 

Upvotes: 0

yofisim
yofisim

Reputation: 370

Do not be mistaken! If you use the function get_the_date() from WP, it will display the date when the post/page/archive was created like it is explained here. https://codex.wordpress.org/Function_Reference/get_the_date

If you want to display the current date follow the example below.

You can display the current date using the date() method.

More infos here: http://php.net/manual/en/function.date.php

If you then want to display the current date on you different pages, you could then use:

<?php 
$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

?>

From the above example, pick one of the format you need, adapt it if needed and then you just have to echo $today, and this will work.

----------> EDIT <-------------

To achieve the format you want, use this:

<?php 
echo date('l jS \of F Y');
?>

replace \of by your language.

If you place the code snippet in you page it should work.

Tested here:http://sandbox.onlinephpfunctions.com/

Upvotes: 4

Related Questions