Last updated May 22, 2012. Created by Evan Leeson on June 27, 2006.
Edited by mototribe, MGParisi, bekasu. Log in to edit this page.
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.
Comments
Time Saver
This saved me a lot of time, thanks.
I'm using Drupal 7.15 and this doesn't work for me
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