DateTime
PHP Manual

DateTime::__construct

(PHP 5 >= 5.2.0)

DateTime::__constructDevuelve un nuevo objeto DateTime

Descripción

Estilo orientado a objetos

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

Estilo por procesos

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Devuelve un nuevo objeto DateTime.

Parámetros

time

Una cadena date/time. Los formatos válidos son explicados en Formatos de hora y fecha.

Introduzca NULL aquí para obtener el momento actual cuando se use el parámetro $timezone.

timezone

Un objeto DateTimeZone que representa la zona horaria deseada.

Si se omite $timezone, se usará la zona horaria actual.

Note:

El parámetro $timezone y la zona horaria actuales se ignoran cuando el parámetro $time es una fecha UNIX (p.ej. @946684800) o especifica una zona horaria (p.ej. 2010-01-28T15:00:00+02:00).

Valores devueltos

evuelve una nueva instancia de DateTime. Estilo por procesos devuelve FALSE en caso de error.

Errores/Excepciones

Emite Exception en caso de error.

Historial de cambios

Versión Descripción
5.3.0 Si se especifica una fecha no válida, ahora se lanza una excepción. Anteriormente se emitía un error.

Ejemplos

Example #1 Ejemplo de DateTime::__construct()

Estilo orientado a objetos

<?php
try {
    
$fecha = new DateTime('2000-01-01');
} catch (
Exception $e) {
    echo 
$e->getMessage();
    exit(
1);
}

echo 
$fecha->format('Y-m-d');
?>

Estilo por procesos

<?php
$fecha 
date_create('2000-01-01');
if (!
$fecha) {
    
$e date_get_last_errors();
    foreach (
$e['errors'] as $error) {
        echo 
"$error\n";
    }
    exit(
1);
}

echo 
date_format($fecha'Y-m-d');
?>

El resultado de los ejemplos serían:

2000-01-01

Example #2 Complejidades de DateTime::__construct()

<?php
// Fecha/hora especificadas en la zona horaria de su ordenador.
$fecha = new DateTime('2000-01-01');
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";

// Fecha/hora especificadas en la zona horaria especificada.
$fecha = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";

// Fecha/hora actuales en la zona horaria de su ordenador.
$fecha = new DateTime();
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";

// Fecha/hora actuales en la zona horaria especificada.
$fecha = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";

// Usando una fecha UNIX.  Nótese el resultado en la zona horaria UTC.
$fecha = new DateTime('@946684800');
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";

// Valores no existentes que se exceden.
$fecha = new DateTime('2000-02-30');
echo 
$fecha->format('Y-m-d H:i:sP') . "\n";
?>

El resultado del ejemplo sería algo similar a:

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

Ver también


DateTime
PHP Manual