it-swarm.com.de

Einen Zeitstempel für heute um Mitternacht erhalten?

Wie würde ich heute um Mitternacht einen Zeitstempel in PHP setzen? Angenommen, es ist Montag 17 Uhr und ich möchte den Zeitstempel für Montag (heute) um Mitternacht (12 Uhr), der bereits geschehen ist.

Vielen Dank

97
user1701398
$timestamp = strtotime('today midnight');

Vielleicht möchten Sie einen Blick darauf werfen, was PHP zu bieten hat: http://php.net/datetime

193
hakre

Ich denke, dass Sie das neue DateTime-Objekt PHP verwenden sollten, da es keine Probleme mit Datumsangaben gibt, die über die 32-Bit-Einschränkungen von strtotime () hinausgehen. Hier ein Beispiel, wie Sie das heutige Datum um Mitternacht erhalten würden. 

$today = new DateTime();
$today->setTime(0,0);

Wenn Sie PHP 5.4 oder höher verwenden, können Sie dies folgendermaßen tun:

$today = (new DateTime())->setTime(0,0);

Dann können Sie mit echo $today->format('Y-m-d'); das Format erhalten, in dem Ihr Objekt ausgegeben werden soll.

PHP DateTime-Objekt

60
Joe Meyer

Heute um Mitternacht. Einfach.

$stamp = mktime(0, 0, 0);
16
bearcat

Sie möchten den Zeitpunkt des jüngsten Himmelsereignisses berechnen, bei dem die Sonne direkt unter Ihren Füßen vorbeigefahren ist, angepasst an die lokalen Konventionen der Hochmittagsmarkierung und möglicherweise auch für die Anpassung, so dass die Menschen nach der Arbeit von der Arbeit genug Tageslicht haben andere politische Überlegungen.

Entmutigend, richtig? Eigentlich ist dies ein häufiges Problem, aber die vollständige Antwort ist ortsabhängig:

$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();

Mögliche Definitionen von „hier“ sind unter https://secure.php.net/manual/de/timezones.php aufgeführt.

4
$today_at_midnight = strtotime(date("Ymd"));

sollte dir geben, was du willst.

Erklärung

Was ich getan habe, war die Date-Funktion von PHP, um das heutige Datum ohne Zeitangaben abzurufen und dann an die 'String to Time'-Funktion zu übergeben, die Datum und Uhrzeit in einen Epochen-Zeitstempel konvertiert. Wenn es keine Zeit hat, nimmt es die erste Sekunde dieses Tages an.

Referenzen: Datum Funktion: http://php.net/manual/de/function.date.php

Zeichenfolge zur Zeit: http://de2.php.net/manual/de/function.strtotime.php

4
SamHuckaby

Wenn Sie Carbon verwenden, können Sie Folgendes tun. Sie können dieses Datum auch formatieren, um einen Expire HTTP-Header festzulegen.

Carbon::parse('tomorrow midnight')->format(Carbon::RFC7231_FORMAT)
0
nowox
$timestamp = strtotime('today midnight');

ist das gleiche wie

$timestamp = strtotime('today');

und es ist ein bisschen weniger Arbeit auf Ihrem Server.

0
Case

In objektiver Weise:

$today = new \DateTimeImmutable('today');

beispiel:

 echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00

und:

echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35
0
Jan Galtowski

$midnight = strtotime('midnight'); ist gültig
Sie können auch strtotime('12am') oder strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]') ausprobieren. Ich habe das Hinzufügen vor Mitternacht übersprungen, da der Standardwert heute ist.

0
Victor Mbamara