Introduction
When you post an article on a blog, you have to
display the date that it was published.
When you updated a record in a database, you need to record the last
update date for auditing purposes. Copyright notices on website need to
display the current year too.
PHP date functions are the ones that make the above possible. PHP has built in functions that simplify working with date data types.
What is the Date Function?
The PHP date function is used to format a date or time into a human readable format. It has the following basic
syntax
1
2
3
|
<?php
date (format,[timestamp]);
?>
|
HERE,
- “date(…)” is the function that returns the current time on the server.
- “format” is the general format which we want our output to be i.e.;
- “Y-m-d” for MySQL date format YYYY-MM-DD
- “Y” to display the current year
- “[timestamp]” is optional. If no timestamp has been provided, PHP will get the use the current date and time on the server.
Let’s look at a basic example that displays the current year.
Testing our code
Let’s assume you have saved the file simple_date.php in phptuts, browse to the URL
http://localhost/phptuts/simple_date.php
What is a timestamp?
A timestamp is a numeric value in seconds between the current time and value as at 1st January, 1970 00:00:00 Greenwich Mean Time (GMT).
The value returned by the time function depends on the default time
zone. The default time zone is set in the php.ini file. It can also be
set programmatically using date_default_timezone_set function. The code
below displays the current time stamp
Assuming you saved the file timestamp.php in phptuts folder, browse to the URL
http://localhost/phptuts/timestamp.php
Note: the value of the timestamp is not a constant. It changes every second.
Getting a list of available time zone identifiers
Before we look at how to set the default time zone programmatically, let’s look at
how to get a list of supported time zones.
HERE,
- “$timezone_identifiers = DateTimeZone::listIdentifiers();”
calls the listIdentifiers static method of the DateTimeZone built in
class. The listIdentifiers method returns a list of constants that are
assigned to the variable $timezone_identifiers.
- “foreach{…}” iterates through the numeric array and prints the values.
Assuming you saved the file list_time_zones.php in phptuts folder, browse to the URL
http://localhost/phptuts/list_time_zones.php
Setting the default time zone programmatically
The date_default_timezone_set function allows you to set the default
time zone from a PHP script. The set time zone will then be used by all
date function scripts. It has the following syntax.
1
2
3
|
<?php
date_default_timezone_set ( string $timezone_identifier );
?>
|
HERE,
- “date_default_timezone_set()” is the function that sets the default time zone
- “string $timezone_identifier” is the time zone identifier
The script below displays the time according to the default time zone
set in php.ini. It then changes the default time zone to Asia/Calcutta
and displays the time again.
Assuming you have saved the file set_time_zone.php in the phptuts folder, browse to the URL
http://localhost/phptuts/set_time_zone.php
Mktime function
The mktime function returns the timestamp in a UNIX format. It has the following syntax.
1
2
3
|
<?php
mktime (hour, minute, second, month, day, year, is_dst);
?>
|
HERE,
- “mktime(…)” is the make timestamp function
- “hour” is optional, it is the number of hour
- “minute” is optional, it is the number of minutes
- “second” is optional, it is the number of seconds
- “month” is optional, it is the number of the month
- “day” is optional, it is the number of the day
- “year” is optional, it is the number of the year
- “is_dst” is optional, it is used to determine the day saving time (DST). 1 is for DST, 0 if it is not and -1 if it is unknown.
Let’s now look at an example that creates a timestamp for the date 13/10/2012 using the mktime function.
HERE,
- “0,0,0” is the hour, minute and seconds respectively.
- “13” is the day of the month
- “10” is the month of the year
- “2012” is the year
Assuming you saved the file mktime.php in the folder phptus, browse to the URL
http://localhost/phptuts/mktime.php
PHP Date function reference
The table below shows the common parameters used when working with the date function.
Time parameters
Parameter | Description | Example |
“r” | Returns the full date and time |
|
“a”,”A” | Returns whether the current time is am or pm, AM or PM respectively |
|
“g”,”G” | Returns the hour without leading zeroes [1 to 12], [0 to 23] respectively |
|
“h”,”H” | Returns the hour with leading zeros [01 to 12],[00 to 23] respectively |
|
“i”,”s” | Returns the minutes/seconds with leading zeroes [00 to 59] |
|
Day parameters
Parameter | Description | Example |
“d” | Returns the day of the month with leading zeroes [01 to 31] |
|
“j” | Returns the day of the month without leading zeroes [1 to 31] |
|
“D” | Returns the first 3 letters of the day name [Sub to Sat] |
|
“l” | Returns day name of the week [Sunday to Saturday] |
|
“w” |
Returns day of the week without leading zeroes [0 to 6] Sunday is
represent by zero (0) through to Saturday represented by six (6) |
|
“z” | Returns the day of the year without leading spaces [0 through to 365] |
|
Month Parameters
Parameter | Description | Example |
“m” | Returns the month number with leading zeroes [01 to 12] |
|
“n” | Returns the month number without leading zeroes [01 to 12] |
|
“M” | Returns the first 3 letters of the month name [Jan to Dec] |
|
“F” | Returns the month name [January to December] |
|
“t” | Returns the number of days in a month [28 to 31] |
|
Year Parameters
Parameter | Description | Example |
“L” | Returns 1 if it’s a leap year and 0 if it is not a leap year |
|
“Y” | Returns four digit year format |
|
“y” | Returns two (2) digits year format (00 to 99) |
|
Summary
- The date function is used to format the timestamp into a human desired format.
- The timestamp is the number of seconds between the current time and 1st January, 1970 00:00:00 GMT. It is also known as the UNIX timestamp.
- All date functions use the default time zone set in the php.ini file
- The default time zone can also be set programmatically using PHP scripts.
No comments:
Post a Comment