the_date( string $format = '', string $before = '', string $after = '', bool $echo = true )

Display or Retrieve the date the current post was written (once per date)

Description Description

Will only output the date if the current post’s date is different from the previous one output.

i.e. Only one date listing will show per day worth of posts shown in the loop, even if the function is called several times for each post.

HTML output can be filtered with ‘the_date’. Date string output can be filtered with ‘get_the_date’.

Top ↑

Parameters Parameters


(string) (Optional) PHP date format. Defaults to the 'date_format' option.

Default value: ''


(string) (Optional) Output before the date.

Default value: ''


(string) (Optional) Output after the date.

Default value: ''


(bool) (Optional) Whether to echo the date or return it.

Default value: true

Top ↑

Return Return

(string|void) String if retrieving.

Top ↑

Source Source

File: wp-includes/general-template.php

function the_date( $format = '', $before = '', $after = '', $echo = true ) {
	global $currentday, $previousday;

	$the_date = '';

	if ( is_new_day() ) {
		$the_date    = $before . get_the_date( $format ) . $after;
		$previousday = $currentday;

	 * Filters the date a post was published for display.
	 * @since 0.71
	 * @param string $the_date The formatted date string.
	 * @param string $format   PHP date format.
	 * @param string $before   HTML output before the date.
	 * @param string $after    HTML output after the date.
	$the_date = apply_filters( 'the_date', $the_date, $format, $before, $after );

	if ( $echo ) {
		echo $the_date;
	} else {
		return $the_date;

Top ↑

Changelog Changelog

Version Description
0.71 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 4 content
    Contributed by Ruhul Amin

    As stated in the documentation if there are multiple posts from the same day, it will only show once.
    To show the date for posts published under same day, we should use the template tag the_time() or get_the_date() with a date-specific format string.

    <?php echo get_the_date(); ?> 
    // get_the_date() return the date doesn't echo the date, so have to echo to show it
    // or use the_time() with date-specific format
    <?php the_time( 'd F Y' ); ?>

    Both functions takes an optional parameter which follows the PHP Date Format

You must log in before being able to contribute a note or feedback.