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.

DateTime()

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:

format("format")

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):
<?php
// 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
?>
Output:
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):
<?php
// 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');
?>
Output:
2012-10-15 12:32:00

getTimestamp()

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

setTimestamp()

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

$date->setTimestamp(1178902725);
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

setTimezone()

The setTimezone class can be used to reset /change the time zone of a DateTime object.
  - Example:
<?php
// 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:
01:58:02

• 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":
<?php
// 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

HTML
CSS
JavaScript
PHP-MySQL
Which tag create a highlighted bolded text?
<q> <strong> <em>
<p>Address: <strong>http://CoursesWeb.net/</strong> - Tutorials.</p>
Which of these CSS codes displays the text bolded?
text-size: 18px; font-style: italic; font-weight: 800;
#id {
  font-weight: 800;
}
What JavaScript function can be used to call another function multiple times, to a specified time interval?
setInterval() setTimeout() push()
function someFunction() { alert("CoursesWeb.net"); }
setInterval("someFunction()", 2000);
Click on the correctly defined variable in PHP.
var vname = 8; $vname = 8; $vname == 8;
$vname = 8;
echo $vname;
PHP DateTime and DateTimeZone classes

Last accessed pages

  1. Backgammon (1290)
  2. Number Lines (1666)
  3. Zuma Games (8602)
  4. Mystic India Pop (2581)
  5. PuzzleImg - Script to Create Image Puzzle Game (987)

Top accessed pages

  1. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (47785)
  2. Read Excel file data in PHP - PhpExcelReader (35922)
  3. PHP-MySQL free course, online tutorials PHP MySQL code (35547)
  4. Get Attribute (ID, Class, Name, Title, Src) with jQuery (32047)
  5. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (29322)