Recipe 3.1. Finding the Current Date and Time


3.1.1. Problem

You want to know what the time or date is.

3.1.2. Solution

Use strftime( ) or date( ) for a formatted time string, as in Example 3-2.

Finding the current date and time

<?php print strftime('%c'); print "\n"; print date('r'); ?>

Example 3-2 prints:

Wed May 10 18:29:59 2006 Wed, 10 May 2006 18:29:59 -0400

Use getdate( ) or localtime( ) if you want time parts. Example 3-3 shows how these functions work.

Finding time parts

<?php $now_1 = getdate(); $now_2 = localtime(); print "{$now_1['hours']}:{$now_1['minutes']}:{$now_1['seconds']}\n"; print "$now_2[2]:$now_2[1]:$now_2[0]"; 

Example 3-3 prints:

18:23:45 18:23:45

3.1.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.4. 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 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 (4 digits)

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")

0

Seconds since epoch (what time( ) returns)


Example 3-4 shows how to use getdate( ) to print out the month, day, and year.

Finding the month, day, and year

<?php $a = getdate(); printf('%s %d, %d',$a['month'],$a['mday'],$a['year']); ?>

Example 3-4 prints:

May 5, 2007

Pass getdate( ) an epoch timestamp as an argument to make the returned array the appropriate values for local time at that timestamp. The month, day, and year at epoch timestamp 163727100 is shown in Example 3-5.

getdate( ) with a specific timestamp

<?php $a = getdate(163727100); printf('%s %d, %d',$a['month'],$a['mday'],$a['year']); ?>

Example 3-5 prints:

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 (Sunday is 0)

7

tm_yday

Day of the year

8

tm_isdst

Is daylight savings time in effect?


Example 3-6 shows how to use localtime( ) to print out today's date in month/day/year format.

Using localtime( )

<?php $a = localtime(); $a[4] += 1; $a[5] += 1900; print "$a[4]/$a[3]/$a[5]"; 

Example 3-6 prints:

6/23/2006

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.

3.1.4. See Also

Documentation on strftime( ) at http://www.php.net/strftime, date( ) at http://www.php.net/date, getdate( ) at http://www.php.net/getdate, and localtime( ) at http://www.php.net/localtime .




PHP Cookbook, 2nd Edition
PHP Cookbook: Solutions and Examples for PHP Programmers
ISBN: 0596101015
EAN: 2147483647
Year: 2006
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net