3.2.3. Discussion
The functions strftime( ) and date(
) can produce a variety of formatted time and date strings.
They are discussed in more detail in Recipe 3.5. Both localtime( ) and
getdate( ), on the other hand, return arrays whose
elements are the different pieces of the specified date and time.
The associative array getdate(
) returns has the key/value pairs listed in Table 3-1.
Table 3-1. Return array from getdate( )
Key
|
Value
|
seconds
|
Seconds
|
minutes
|
Minutes
|
hours
|
Hours
|
mday
|
Day of the month
|
wday
|
Day of the week, numeric (Sunday is 0, Saturday is 6)
|
mon
|
Month, numeric
|
year
|
Year, numeric
|
yday
|
Day of the year, numeric (e.g., 299)
|
weekday
|
Day of the week, textual, full (e.g.,
"Friday")
|
month
|
Month, textual, full (e.g.,
"January")
|
For example, here's how to use getdate(
) to print out the month, day, and year:
$a = getdate( );
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);
August 7, 2002
Pass getdate( ) an epoch timestamp as an argument
to make the returned array the appropriate values for local time at
that timestamp. For example, the month, day, and year at epoch
timestamp 163727100 is:
$a = getdate(163727100);
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);
March 10, 1975
The function localtime(
)
returns an array of time and date parts. It also takes an epoch
timestamp as an optional first argument, as well as a boolean as an
optional second argument. If that second argument is
true, localtime(
) returns an associative array
instead of a numerically indexed array. The keys of that array are
the same as the members of the tm_struct structure
that the C function localtime( ) returns, as shown
in Table 3-2.
Table 3-2. Return array from localtime( )
Numeric position
|
Key
|
Value
|
0
|
tm_sec
|
Second
|
1
|
tm_min
|
Minutes
|
2
|
tm_hour
|
Hour
|
3
|
tm_mday
|
Day of the month
|
4
|
tm_mon
|
Month of the year (January is 0)
|
5
|
tm_year
|
Years since 1900
|
6
|
tm_wday
|
Day of the week
|
7
|
tm_yday
|
Day of the year
|
8
|
tm_isdst
|
Is daylight saving time in effect?
|
For example,
here's how to use localtime( ) to
print out today's date in month/day/year format:
$a = localtime( );
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";
8/7/2002
The month is incremented by 1 before printing since
localtime( ) starts counting months with 0 for
January, but we want to display 1 if the current
month is January. Similarly, the year is incremented by 1900 because
localtime( ) starts counting years with 0 for
1900.
Like getdate( ), localtime( )
accepts an epoch timestamp as an optional first
argument to produce time parts for that timestamp:
$a = localtime(163727100);
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";
3/10/1975