576 Stimmen

NOW()-Funktion in PHP

Gibt es eine PHP-Funktion, die das Datum und die Uhrzeit im gleichen Format wie die MySQL-Funktion NOW() ?

Ich weiß, wie man es macht, indem man date() aber ich frage, ob es eine Funktion nur für diesen Zweck gibt.

Zum Beispiel, um zurückzukehren:

2009-12-01 00:00:00

11voto

CPHPython Punkte 9094

Oder Sie können verwenden DateTime Konstanten :

echo date(DateTime::W3C); // 2005-08-15T15:52:01+00:00

Hier ist eine Liste von ihnen:

ATOM = "Y-m-d\TH:i:sP" ;               // -> 2005-08-15T15:52:01+00:00
COOKIE = "l, d-M-Y H:i:s T" ;          // -> Monday, 15-Aug-2005 15:52:01 UTC
ISO8601 = "Y-m-d\TH:i:sO" ;            // -> 2005-08-15T15:52:01+0000
RFC822 = "D, d M y H:i:s O" ;          // -> Mon, 15 Aug 05 15:52:01 +0000
RFC850 = "l, d-M-y H:i:s T" ;          // -> Monday, 15-Aug-05 15:52:01 UTC
RFC1036 = "D, d M y H:i:s O" ;         // -> Mon, 15 Aug 05 15:52:01 +0000
RFC1123 = "D, d M Y H:i:s O" ;         // -> Mon, 15 Aug 2005 15:52:01 +0000
RFC2822 = "D, d M Y H:i:s O" ;         // -> Mon, 15 Aug 2005 15:52:01 +0000
RFC3339 = "Y-m-d\TH:i:sP" ;            // -> 2005-08-15T15:52:01+00:00 ( == ATOM)
RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ; // -> 2005-08-15T15:52:01.000+00:00
RSS = "D, d M Y H:i:s O" ;             // -> Mon, 15 Aug 2005 15:52:01 +0000
W3C = "Y-m-d\TH:i:sP" ;                // -> 2005-08-15T15:52:01+00:00

Für die Fehlersuche bevorzuge ich allerdings eine kürzere Version ( 3v4l.org ):

echo date('ymd\THisP'); // 180614T120708+02:00

6voto

Seth Punkte 91

Ich mag die Lösung von user1786647 gepostet, und ich habe es ein wenig aktualisiert, um die Zeitzone zu einem Funktionsargument zu ändern und fügen Sie optionale Unterstützung für die Übergabe entweder eine Unix-Zeit oder datetime-String für die zurückgegebene datestamp verwenden.

Es enthält auch einen Fallback für "setTimestamp" für Benutzer, die eine niedrigere Version als PHP 5.3 verwenden:

function DateStamp($strDateTime = null, $strTimeZone = "Europe/London") {
    $objTimeZone = new DateTimeZone($strTimeZone);

    $objDateTime = new DateTime();
    $objDateTime->setTimezone($objTimeZone);

    if (!empty($strDateTime)) {
        $fltUnixTime = (is_string($strDateTime)) ? strtotime($strDateTime) : $strDateTime;

        if (method_exists($objDateTime, "setTimestamp")) {
            $objDateTime->setTimestamp($fltUnixTime);
        }
        else {
            $arrDate = getdate($fltUnixTime);
            $objDateTime->setDate($arrDate['year'], $arrDate['mon'], $arrDate['mday']);
            $objDateTime->setTime($arrDate['hours'], $arrDate['minutes'], $arrDate['seconds']);
        }
    }
    return $objDateTime->format("Y-m-d H:i:s");
}

6voto

Som Punkte 941

Sie können die PHP-Datumsfunktion mit dem richtigen Format als Parameter verwenden,

echo date("Y-m-d H:i:s");

6voto

Mac Punkte 1157

Meine Antwort ist überflüssig, aber wenn Sie eine Zwangsstörung haben, visuell orientiert sind und Das muss man einfach sehen jetzt Stichwort in Ihrem Code, verwenden:

date( 'Y-m-d H:i:s', strtotime( 'now' ) );

1voto

RAZIUL Punkte 108

Es gibt kein eingebautes PHP now() Funktion, aber Sie können es auch mit date() .

Beispiel

function now() {
    return date('Y-m-d H:i:s');
}

Sie können verwenden date_default_timezone_set() wenn Sie die Zeitzone ändern müssen.

Andernfalls können Sie Folgendes verwenden Kohlenstoff - Eine einfache PHP-API-Erweiterung für DateTime.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X