2016-10-10 1 views
2

Eine kurze und einfache Frage, auf die ich keine Antwort finden konnte.Verwendung von DateTime als Einzeiler in PHP

In prozedurale PHP I

echo date('Y-m-d'); ?> 

In Objekt ein Datum Echo könnte orientierte PHP ich zwei Zeilen verwenden, habe

$now = new DateTime(); 
echo $now->format('Y-m-d'); 

Ist es möglich, dies in einer Zeile zu tun?

+0

Sie könnten nach dereferencing suchen, die in verfügbar ist [PHP> = 5.4.0] (http://php.net/manual/en/migration54.new-features.php) –

Antwort

5
echo (new DateTime())->format('Y-m-d'); 
+0

Welche PHP-Version benötigt diese Syntax? – Peter

+1

müssen Sie PHP verwenden> 5.4 –

+0

Ich dachte über diese Syntax nach, aber ich verwende PHP '5.3.3'. – Peter

0

Sie auf diese Weise versuchen:

echo $date = new DateTime('2016-01-01'); 

Object Oriented Design:

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

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

Procedural Stil:

<?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'); 
?> 
1

Sie können nur die date_create Funktion:

date_create ist ähnlich wie new DateTime().

anschauliches Beispiel: https://3v4l.org/gU2LK