Bei der Entwicklung mit PHP-Programmen werden häufig Warn- oder Fehlermeldungen angezeigt. Darunter kann eine Fehlermeldung erscheinen: PHP-Warnung: date() erwartet, dass Parameter 2 lang ist und die Zeichenfolge angegeben ist.
Diese Fehlermeldung bedeutet: Es wird erwartet, dass der zweite Parameter der Funktion date() eine lange Ganzzahl (long) ist, aber tatsächlich wird ihm ein String (string) übergeben. Wie also sollen wir dieses Problem lösen? Im Folgenden stellen wir einige mögliche Lösungen vor.
Bei Verwendung der Funktion date() wird normalerweise der zweite Parameter zur Darstellung des Zeitstempels verwendet. Ein Zeitstempel ist eine Möglichkeit, die Zeit in ganzzahliger Form darzustellen und wird normalerweise mit der Funktion time() abgerufen. Daher müssen wir zunächst bestätigen, ob der zweite Parameter tatsächlich ein langer ganzzahliger Zeitstempel ist, wenn wir die Funktion date() aufrufen.
Im folgenden Codebeispiel ist der zweite Parameter der date()-Funktion beispielsweise eine Zeichenfolge, sodass die obige Fehlermeldung angezeigt wird.
$dateStr = "2022-01-01"; echo date("Y年m月d日",$dateStr); //输出:PHP Warning: date() expects parameter 2 to be long, string given
Wenn Sie Zeit in Stringform in einen Zeitstempel umwandeln müssen, können Sie dies mit der Funktion strtotime() erreichen. Beispiel:
$dateStr = "2022-01-01"; $date = strtotime($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
Wenn der zweite Parameter beim Aufruf der date()-Funktion NULL ist, tritt der obige Fehler auf. Daher sollten Sie bei Verwendung der date()-Funktion prüfen, ob der zweite Parameter NULL ist, zum Beispiel:
$date = null; echo date("Y年m月d日",$date); //输出:PHP Warning: date() expects parameter 2 to be long, string given
Sie können den obigen Code ändern in:
$date = time(); echo date("Y年m月d日",$date); //输出:当前时间的年月日格式
Wann Wenn bei Verwendung der date()-Funktion der zweite Parameter eine Zeichenfolge vom Typ Integer ist, wird auch die obige Fehlermeldung angezeigt. Wenn Sie daher die Funktion date() verwenden, sollten Sie die Parameter in numerische Typen konvertieren, z. B.:
$dateStr = "1640995200"; $date = intval($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
Oder verwenden Sie direkt den Typkonvertierungsoperator für die Konvertierung, z. B.:
$dateStr = "1640995200"; $date = (int)$dateStr; echo date("Y年m月d日",$date); //输出:2022年01月01日
Zusammenfassend gilt: PHP-Warnung: Datum Erscheint () erwartet, dass Parameter 2 lang ist, gibt die Zeichenfolge eine Fehlermeldung aus. Wir können dieses Problem lösen, indem wir den übergebenen Parametertyp überprüfen, feststellen, ob der Parameter NULL ist, oder eine Typkonvertierung durchführen. Wenn dieser Fehler auftritt, geraten Sie nicht in Panik, wählen Sie einfach die geeignete Lösung entsprechend der jeweiligen Situation.
Das obige ist der detaillierte Inhalt vonPHP-Warnung: date() erwartet, dass Parameter 2 lang ist, die Zeichenfolge ist eine Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!