Ich habe zwei Pfeile eingerichtet, klicke für den nächsten Tag, die nächsten zwei Tage, bald und den vorhergehenden Tag, vor zwei Tagen, bald. Der Code scheint nicht zu funktionieren? da es nur einen nächsten und vorherigen Tag gibt.
<a href="home.php?date=<?= date('Y-m-d', strtotime('-1 day', strtotime($date))) ?>" class="prev_day" title="Previous Day" ></a>
<a href="home.php?date=<?= date('Y-m-d', strtotime('+1 day', strtotime($date))) ?>" class="next_day" title="Next Day" ></a>
wenn ich auf die nächste Schaltfläche klicke, wird das Datum für den nächsten Tag kontinuierlich geändert. Für einen Moment wird es nur einen Tag voraus sein
date('Y-m-d', strtotime('+1 day', strtotime($date)))
Sollte lesen
date('Y-m-d', strtotime(' +1 day'))
Aktualisieren, um die Frage zu beantworten, die in einem Kommentar zur kontinuierlichen Änderung des Datums gestellt wurde.
<?php
$date = isset($_GET['date']) ? $_GET['date'] : date('Y-m-d');
$prev_date = date('Y-m-d', strtotime($date .' -1 day'));
$next_date = date('Y-m-d', strtotime($date .' +1 day'));
?>
<a href="?date=<?=$prev_date;?>">Previous</a>
<a href="?date=<?=$next_date;?>">Next</a>
Dadurch wird das Datum ab dem Datum, zu dem Sie sich gerade befinden, um eins erhöht oder verringert.
Sie sollten die Klassen DateTime und DateInterval in PHP verwenden, und die Dinge werden sehr einfach und lesbar.
Beispiel: Lassen Sie uns den vorherigen Tag erhalten.
// always make sure to have set your default timezone
date_default_timezone_set('Europe/Berlin');
// create DateTime instance, holding the current datetime
$datetime = new DateTime();
// create one day interval
$interval = new DateInterval('P1D');
// modify the DateTime instance
$datetime->sub($interval);
// display the result, or print_r($datetime); for more insight
echo $datetime->format('Y-m-d');
/**
* TIP:
* if you dont want to change the default timezone, use
* use the DateTimeZone class instead.
*
* $myTimezone = new DateTimeZone('Europe/Berlin');
* $datetime->setTimezone($myTimezone);
*
* or just include it inside the constructor
* in this form new DateTime("now", $myTimezone);
*/
Referenzen: Modernes PHP, neue Funktionen und bewährte MethodenBy Josh Lockhart
Benutzen
$time = time();
Für Vortag -
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time)- 1 ,date("Y", $time)));
Vor 2 Tagen
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time) -2 ,date("Y", $time)));
Für den nächsten Tag -
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time)+ 1 ,date("Y", $time)));
Für die nächsten 2 Tage
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time) +2 ,date("Y", $time)));
strtotime('-1 day', strtotime($date))
Dies gibt die Anzahl der Differenz in Sekunden des angegebenen Datums und des $ date zurück. Damit erhalten Sie ein falsches Ergebnis.
Angenommen, $ date ist das heutige Datum, und -1 day bedeutet, dass es -86400 als Differenz zurückgibt. Wenn Sie das Datum verwenden, erhalten Sie ein Datum für den Start des Unix-Zeitstempels von 1969-12-31.
Verwenden Sie einfach dieses
echo date('Y-m-d',strtotime("yesterday"));
echo date('Y-m-d',strtotime("tomorrow"));
es genügt es so zu nennen:
<a href="home.php?date=<?= date('Y-m-d', strtotime('-1 day')) ?>" class="prev_day" title="Previous Day" ></a>
<a href="home.php?date=<?= date('Y-m-d', strtotime('+1 day')) ?>" class="next_day" title="Next Day" ></a>
Siehe auch die Dokumentation .
Sie könnten 'now' als Zeichenfolge verwenden, um das Datum von heute/morgen/gestern zu erhalten:
$previousDay = date('Y-m-d', strtotime('now - 1day'));
$toDay = date('Y-m-d', strtotime('now'));
$nextDay = date('Y-m-d', strtotime('now + 1day'));
PHP-Skript -1 **** sein zum nächsten Datum
<?php
$currentdate=date('Y-m-d');
$date_arr=explode('-',$currentdate);
$next_date=
Date("Y-m-d",mktime(0,0,0,$date_arr[1],$date_arr[2]+1,$date_arr[0]));
echo $next_date;
?>**
**Php script -1****its to Next year**
<?php
$currentdate=date('Y-m-d');
$date_arr=explode('-',$currentdate);
$next_date=
Date("Y-m-d",mktime(0,0,0,$date_arr[1],$date_arr[2],$date_arr[0]+1));
echo $next_date;
?>
stellen Sie immer sicher, dass Sie Ihre Standard-Zeitzone eingestellt haben
date_default_timezone_set('Europe/Berlin');
erstellen Sie eine DateTime-Instanz, die die aktuelle Datumszeit enthält
$datetime = new DateTime();
erstellen Sie ein Tagesintervall
$interval = new DateInterval('P1D');
Ändern Sie die DateTime-Instanz
$datetime->sub($interval);
anzeige des Ergebnisses oder print_r($datetime);
für weitere Einsichten
echo $datetime->format('Y-m-d');
SPITZE:
Wenn Sie die Standardzeitzone nicht ändern möchten, verwenden Sie stattdessen die DateTimeZone
-Klasse.
$myTimezone = new DateTimeZone('Europe/Berlin');
$datetime->setTimezone($myTimezone);
oder fügen Sie es einfach in den Konstruktor in diesem Formular ein new DateTime("now", $myTimezone);
nur für den Fall, dass Sie den nächsten Tag oder den vorherigen Tag vom heutigen Datum wünschen
datum ("Y-m-d", mktime (0, 0, 0, Datum ("m"), Datum ("d") - 1, Datum ("Y")));
ändern Sie einfach "-1" in "+1" Viele Grüße, Yosafat