3.2.1 Problem
You want to know what the time or date is.
3.2.2 Solution
print strftime('%c');
print date('r');
Mon Aug 12 18:23:45 2002
Mon, 12 Aug 2002 18:23:45 -0400
$now_1 = getdate( ); $now_2 = localtime( ); print "$now_1[hours]:$now_1[minutes]:$now_1[seconds]"; print "$now_2[2]:$now_2[1]:$now_2[0]"; 18:23:45 18:23:45
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 Section 3.5.
Both localtime( ) and getdate( ), on the other hand, return
arrays whose elements are the different pieces of the specified date and time.
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.
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?
|
$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