Last updated June 5, 2015. Created on June 27, 2006.
Edited by oseldman, ergophobe, mototribe, MGParisi. Log in to edit this page.

Drupal 7

To manage date formats in Drupal 7, you need to manage both format types and formats themselves in the Regional and Language settings.

You can create a new date/time format using the standard PHP date/time formatting tokens by navigating to Admin > Configuration > Regional and Language > Date and Time and clicking on the Formats tab (admin/config/regional/date-time/formats).

Once you've created your new format, you can assign that to a format type by clicking on the Types tab (admin/config/regional/date-time). There you can create a new "type" and assign it a format. You can then use that type to choose the display format wherever dates are used.

Earlier versions of Drupal

You can control way the date is displayed [admin/settings/date settings], or if it is displayed at all [admin/themes/configure/display post information on], in the main Drupal settings, but only to a certain extent.

If you want complete control over how the date is displayed, use PHP at the Theme level. This is from the disussions and is courtesy of Laura S.

At the top of your node.tpl.php file, add:

<?php
$formatted_date
= format_date($node->created, 'custom', 'D j M Y');
?>

Change the "D j M Y" part to what you require (see below for possible variables).

Then print or echo $formatted_date instead of $date. Look in your template for the string $date and replace it with $formatted_date.

To change the date/time display to your taste, arrange the following variables in the manner you require:

a - "am" or "pm"
A - "AM" or "PM"
d - day of the month, 2 digits with leading zeros; i.e. "01" to "31"
D - day of the week, textual, 3 letters; i.e. "Fri"
F - month, textual, long; i.e. "January"
h - hour, 12-hour format; i.e. "01" to "12"
H - hour, 24-hour format; i.e. "00" to "23"
g - hour, 12-hour format without leading zeros; i.e. "1" to "12"
G - hour, 24-hour format without leading zeros; i.e. "0" to "23"
i - minutes; i.e. "00" to "59"
j - day of the month without leading zeros; i.e. "1" to "31"
l (lowercase 'L') - day of the week, textual, long; i.e. "Friday"
L - boolean for whether it is a leap year; i.e. "0" or "1"
m - month; i.e. "01" to "12"
n - month without leading zeros; i.e. "1" to "12"
M - month, textual, 3 letters; i.e. "Jan"
s - seconds; i.e. "00" to "59"
S - English ordinal suffix, textual, 2 characters; i.e. "th", "nd"
t - number of days in the given month; i.e. "28" to "31"
U - seconds since the epoch
w - day of the week, numeric, i.e. "0" (Sunday) to "6" (Saturday)
Y - year, 4 digits; i.e. "1999"
y - year, 2 digits; i.e. "99"
z - day of the year; i.e. "0" to "365"
Z - timezone offset in seconds (i.e. "-43200" to "43200")

For a full list see http://us.php.net/manual/en/function.date.php

Drupal 5.1 Garamond Difference

In Garamond (and possibly other themes) for 5.1 the procedure is different than described above. Go to Line 12 in node.tpl.php and change

format_date($node->created)

to

format_date($node->created, 'custom', 'M j, Y')

Substitute your own preference for: 'M j, Y' according to the info given in the original post.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

CardEra’s picture

This saved me a lot of time, thanks.

wickwood’s picture

I'm using Drupal 7.15 and I want to change the format of the dates for nodes to show the Day of Week and Full Date and no time.

On /admin/config/regional/date-time/formats, I've created a format with the string "l, F j, Y", which produces the correct format for the date, i.e. "Tuesday, August 28 2102".

And on /admin/config/regional/date-time I've created a Date Type called "Day of Week and Full Date" which uses the date format I created above.

But I can find nowhere to select this Date Type or Date Format to be displayed for my nodes.

Neither path in the instructions above [admin/settings/date settings] and [admin/themes/configure/display post information on] exist for me, and so I can only assume these are instructions for Drupal 6.

What is the equivalent paths for Drupal 7?

Any guidance that anyone can give me would be GREATLY Appreciated. This seems like something that should be trival to do, yet I've spent hours trying to figure how change this!

Thanks for your help in advance!
Steve

Thank You Drupal Community for all the help you continue to give me, especially when I need it most!

janis_lv’s picture

change the Long/Middle/Short @admin/config/regional/date-time

miltonsnider’s picture

I have an xml output view. I need the output to display as mm/dd/yyyy. I created a date type under config/regional and language/date. I chose this type for the format type of the field in the view. However, the output is still yyyy-mm-dd 00:00:00 in the xml file. I do not want time at all and I prefer the date as mm/dd/yyyy. What am I missing here?

regards
Milton

sonicthoughts’s picture

So I had a strange date format (no year). It looked correct under /admin/config/regional/date-time and I was stumped. Then I hit save on the the page and the formats updated!!! Probably related to an upgrade from D6. hope this helps someone else :)

JoshuaKissoon’s picture

I myself came across this problem and found information all around the web on this. I've created a video tutorial with an entire walkthrough of setting this up in drupal 7 (for which much information isn't given abvoe) using the Date API. Checkout: http://gleamly.com/article/drupal-date-api-creating-custom-date-format

amireldor’s picture

Whoa! Thanks! I never thought of saving that which already seems to be saved.
Thanks!