PHP Date - Robust Dates and Times
While PHP's date() function may seem to have an
overwhelming amount of options available, isn't it always better
to have more choices than not enough? With PHP's date function
you format timestamps, so they are more human readable.
This lesson will teach you how to display the current time,
formating PHP's timestamp, and show you all the various date
arguments for reference purposes.
PHP Date - The Timestamp
The date function always formats a timestamp, whether you
supply one or not. What's a timestamp? Good question!
-
Timestamp: A timestamp is the number of seconds
from January 1, 1970 at 00:00. Otherwise known as the Unix
Timestamp, this measurement is a widely used standard that
PHP has chosen to utilize.
PHP Date - What Time Is It?
The date function uses letters of the alphabet to represent
various parts of a typical date and time format. The letters we
will be using in our first example are:
-
d: The day of the month. The type of output you
can expect is 01 through 31.
-
m: The current month, as a number. You can expect
01 through 12.
-
y: The current year in two digits ##. You can
expect 00 through 99
We'll tell you the rest of the options later, but for now
let's use those above letters to format a simple date! The
letters that PHP uses to represent parts of date and time will
automatically be converted by PHP.
However, other characters like a slash "/" can be inserted
between the letters to add additional formatting. We have opted
to use the slash in our example.
PHP Code:
<?php
echo date("m/d/y");
?>
If the 2010 Winter Olympics were just finishing up, you would
see something like:
Display:
02/27/10
Be sure to test this out on your own PHP enabled server, it's
really great to see the instant results available with PHP date!
PHP Date - Supplying a Timestamp
As our first example shows, the first argument of the date
function tells PHP how you would like your date and time
displayed. The second argument allows for a timestamp and is
optional.
This example uses the mktime function to create a
timestamp for tomorrow. To go one day in the future we simply
add one to the day argument of mktime. For your future
reference, we have the arguments of mktime.
Note: These arguments are all optional. If you do not
supply any arguments the current time will be used to create the
timestamp.
-
mktime(hour, minute, second, month, day, year, daylight
savings time)
PHP Code:
<?php
$tomorrow = mktime(0, 0, 0, date("m"), date("d")+1, date("y"));
echo "Tomorrow is ".date("m/d/y", $tomorrow);
?>
Notice that we used one letter at a time with the function
date
to get the month, day and year. For example the
date("m")
will return the month's number 01-12.
If we were to run our new script just after the 2010 Winter
Olympics our display would look like:
Display:
Tomorrow is 02/28/10
PHP Date - Reference
Now that you know the basics of using PHP's date
function, you can easily plug in any of the following letters to
format your timestamp to meet your needs.
Important Full Date and Time:
-
r: Displays the full date, time and timezone
offset. It is equivalent to manually entering
date("D, d
M Y H:i:s O")
Time:
-
a: am or pm depending on the time
-
A: AM or PM depending on the time
-
g: Hour without leading zeroes. Values are 1
through 12.
-
G: Hour in 24-hour format without leading zeroes.
Values are 0 through 23.
-
h: Hour with leading zeroes. Values 01 through
12.
-
H: Hour in 24-hour format with leading zeroes.
Values 00 through 23.
-
i: Minute with leading zeroes. Values 00 through
59.
-
s: Seconds with leading zeroes. Values 00 through
59.
Day:
-
d: Day of the month with leading zeroes. Values
are 01 through 31.
-
j: Day of the month without leading zeroes.
Values 1 through 31
-
D: Day of the week abbreviations. Sun through Sat
-
l: Day of the week. Values Sunday through
Saturday
-
w: Day of the week without leading zeroes. Values
0 through 6.
-
z: Day of the year without leading zeroes. Values
0 through 365.
Month:
-
m: Month number with leading zeroes. Values 01
through 12
-
n: Month number without leading zeroes. Values 1
through 12
-
M: Abbreviation for the month. Values Jan through
Dec
-
F: Normal month representation. Values January
through December.
-
t: The number of days in the month. Values 28
through 31.
Year:
-
L: 1 if it's a leap year and 0 if it isn't.
-
Y: A four digit year format
-
y: A two digit year format. Values 00 through 99.
Other Formatting:
-
U: The number of seconds since the Unix Epoch
(January 1, 1970)
-
O: This represents the Timezone offset, which is
the difference from Greenwich Meridian Time (GMT). 100 = 1
hour, -600 = -6 hours
We suggest that you take a few minutes to create several
timestamps using PHP's mktime function and just try out
all these different letters to get your feet wet with PHP's
date
function.
|