Welche PHP-Funktion kann das aktuelle Datum/die aktuelle Uhrzeit zurückgeben?
Antworten
Zu viele Anzeigen?Die Zeit würde sich nach Ihrer Serverzeit richten. Eine einfache Lösung für dieses Problem ist die manuelle Einstellung der Zeitzone mit date_default_timezone_set
vor dem date()
o time()
Funktionen aufgerufen werden.
Ich bin in Melbourne, Australien Ich habe also so etwas wie das hier:
date_default_timezone_set('Australia/Melbourne');
Ein anderes Beispiel ist LA - US :
date_default_timezone_set('America/Los_Angeles');
Sie können auch sehen, in welcher Zeitzone sich der Server gerade befindet:
date_default_timezone_get();
Also etwa so:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
Die kurze Antwort auf Ihre Frage lautet also:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Dann würden alle Zeiten der Zeitzone entsprechen, die Sie gerade eingestellt haben :)
// Simply:
$date = date('Y-m-d H:i:s');
// Or:
$date = date('Y/m/d H:i:s');
// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';
/**
* This time is based on the default server time zone.
* If you want the date in a different time zone,
* say if you come from Nairobi, Kenya like I do, you can set
* the time zone to Nairobi as shown below.
*/
date_default_timezone_set('Africa/Nairobi');
// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');
// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.
Für eine Zeitzonen-Referenz siehe Liste der unterstützten Zeitzonen .
Da PHP 5.2.0
können Sie die DateTime()
Klasse:
use \Datetime;
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // MySQL datetime format
echo $now->getTimestamp(); // Unix Timestamp -- Since PHP 5.3
Und zur Angabe der timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Referenz: Hier ist eine Verbindung
Dies kann zuverlässiger sein als das einfache Addieren oder Subtrahieren der Anzahl der Sekunden eines Tages oder eines Monats zu einem Zeitstempel aufgrund der Sommerzeit.
Der PHP-Code
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
PHP Zeit() gibt einen aktuellen Unix-Zeitstempel zurück. Mit diesem können Sie die Datum() Funktion, um sie nach Ihren Wünschen zu formatieren.
$date = date('Format String', time());
Wie Paolo in den Kommentaren erwähnte, ist das zweite Argument überflüssig. Der folgende Ausschnitt ist gleichwertig mit dem obigen:
$date = date('Format String');
- See previous answers
- Weitere Antworten anzeigen
14 Stimmen
TLDR;
$date = date('m/d/Y h:i:s a', time());
2 Stimmen
Sieht es so aus, dass wir die Zeit des Systems, das die Website besucht, nur mit Hilfe von Javascript abfragen können. Für PHP können wir eine feste Zeitzone einstellen, um die aktuelle Zeit dieser Zone zu erhalten.