Since version 5.2, PHP has provided a DateTime class that can handle much more date and time information at the same time, rather than working with separate date and time functions. Also, it works hand-in-hand with the new DateTimeZone class.


To use the DateTime class, and generally any class, you need to create an object of the class, with the new keyword.
  - Syntax:
$now = new DateTime("time", obj_timezone);
This creates an instance of the DateTime class and stores it in a DateTime object called $now. The DateTime object is aware not only of the date and time it was created but also of the time zone used by the web server.
- The "time" argument is optional, it is a string with a valid literaly date/time format. If it is not added, PHP use current time.
- The "obj_timezone" is also optional, an object created with "new DateTimeZone()" representing the desired time zone (i.g new DateTimeZone('America/New_York')).
When using the 'obj_timezone' parameter, enter NULL for "time" argument to obtain the current time.

Most classes have properties and methods, which are similar to variables and functions, they're related only to a particular instance of a class. For example, you can use the methods of the DateTime classs to change certain values, such as the month, year, or perform date calculations.
The object's properties and methods can be accessed using the "->" operator.
$object->property       or       $object->method()
The DateTime object uses only methods, here is some examples:


Returns a date string according to given "format" on success, or FALSE on failure.
  - Example (get and output the current date/time and the day of the week of a specified date):
// get and output the current date/time
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');              // 2011-03-21 14:08:00

// output the day of the week of a specified date
$date = new DateTime('15-10-2012');          // can also be used: "15-October-2012", "2012-Oct-15"
echo '<br /> 15-10-2012 ia a '. $date->format('l');              // 15-10-2012 ia a Monday
2011-03-21 14:08:00
15-10-2012 ia a Monday

setDate(year, month, day)

Resets the current date of the DateTime object to a different date (given with the parameters).

setTime(hour, minute, seconds)

Resets the current date of the DateTime object to a different time (given with the parameters, "seconds" is optional).
  - Example (set a new date and time for DateTime object and display it):
// set a new date and time and display it
$date = new DateTime();

// set a new date
$date->setDate(2012, 10, 15);

// set a new time
$date->setTime(12, 32);

echo $date->format('Y-m-d H:i:s');
2012-10-15 12:32:00


Returns the Unix timestamp of a DateTime object.
  - Example ():
$date = new DateTime();
echo 'Current Timestamp: '. $date->getTimestamp();
Outputs something like:
Current Timestamp: 1300710802


Sets the date and time based on an Unix timestamp.
  - Example ():
$date = new DateTime();
echo 'Current date/time: '. $date->format('Y-m-d H:i:s');

echo '<br /> Date time of the 1178902725 timestamp: '. $date->format('Y-m-d H:i:s');
Outputs something like:
Current date/time: 2011-03-21 14:40:49
Date time of the 1178902725 timestamp: 2007-05-11 19:58:45


The setTimezone class can be used to reset /change the time zone of a DateTime object.
  - Example:
// get and display the current time in Pacific/Auckland
$dtz = new DateTimeZone('Pacific/Auckland') ;
$date = new DateTime(NULL, $dtz);

echo  $date->format('H:i:s');              // 01:58:02
Outputs something like:

• If you want to get the difference between two dates, you need to set a DateTime object for each one. Than, apply the diff() method (returns a DateInterval object representing the difference between the two dates).
  - Example, output the difference between the current time and "1996-07-07 14:45:00":
// set an object with the current date
$dateNow = new DateTime();
$now = $dateNow->format("Y-m-d H:i");           // store the currend date

// the second date
$date2 = new DateTime('1996-07-07 14:45:00');

// apply the diff() method, getting a DateInterval object ($diDiff)
$diDiff = $dateNow->diff($date2) ;

echo 'The difference between: '. $now. ' and "1996-07-07 14:45" is: '. $diDiff->format('%y year, %m months, %d days, %h hours, and %i minutes.');
This code will output something like:
The difference between: 2011-03-21 15:26 and "1996-07-07 14:45" is: 14 year, 8 months, 14 days, 0 hours, and 41 minutes.

Daily Test with Code Example

Which tag is used to add definition lists into a <dl> element?
<dt> <dd> <li>
  <dd> - Hyper Text Markup Language</dd>
  <dd> - Language for web pages</dd>
Which CSS property can hide an element on page, letting an empty space in its place?
display position visibility
#id {
  visibility: hidden;
Click on the event which is triggered when the mouse clicks on an object.
onclick onmouseover onfocus
document.getElementById("id").onclick = function(){
Indicate the PHP variable that contains the contents of both $_GET, $_POST, and $_COOKIE arrays.
if(isset($_REQUEST["id"])) {
  echo $_REQUEST["id"];
PHP DateTime and DateTimeZone classes

Last accessed pages

  1. Math Lines (1927)
  2. innerHTML and outerHTML to Get and Replace HTML content (12047)
  3. Volume and Surface Area Calculator for 3D objects (6060)
  4. Mystic India Pop (6574)
  5. Super Slugger (264)

Popular pages this month

  1. Bubbles3 (3135)
  2. Butterfly Kyodai (2748)
  3. Zuma Deluxe (2025)
  4. Qwop (1252)
  5. Backgammon (1197)