DateTime::__construct

(PHP 5 >= 5.2.0, PHP 7)
Returns new DateTime object
DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Object oriented style

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Procedural style

Returns new DateTime object.

Parameters:
time

A date/time string. Valid formats are explained in Date and Time Formats.

Enter NULL here to obtain the current time when using the $timezone parameter.

timezone

A DateTimeZone object representing the timezone of $time.

If $timezone is omitted, the current timezone will be used.

Note:

The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

Returns:

Returns a new DateTime instance. Procedural style returns FALSE on failure.

Exception:

Emits Exception in case of an error.

Changelog:
5.3.0

If time contains an invalid date/time format, then an exception is now thrown. Previously an error was emitted.

Examples:
DateTime::__construct() example

Object oriented style

1
2
3
4
5
6
7
8
9
10
<?php
try {
    $date new DateTime('2000-01-01');
catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}
 
echo $date->format('Y-m-d');
?>

Procedural style

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$date = date_create('2000-01-01');
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'as $error) {
        echo "$error\n";
    }
    exit(1);
}
 
echo date_format($date'Y-m-d');
?>

The above examples will output:

2000-01-01
Intricacies of DateTime::__construct()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Specified date/time in your computer's time zone.
$date new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
 
// Specified date/time in the specified time zone.
$date new DateTime('2000-01-01'new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
 
// Current date/time in your computer's time zone.
$date new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";
 
// Current date/time in the specified time zone.
$date new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
 
// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
 
// Non-existent values roll over.
$date new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

The above example will output something similar to:

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00
See also:

DateTime::createFromFormat() -

DateTimeZone::__construct() -

Date and Time Formats -

date.timezone -

date_default_timezone_set() -

DateTime::getLastErrors() -

checkdate() -

doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.