it-swarm.com.de

nächster und vorheriger Tag mit PHP

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 

61
tonoslfx
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.

183
Alan Whitelaw

Voraussetzung: PHP 5> = 5.2.0

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

7
Erald Karakashi

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)));
6
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.

3
Prajwal GN

Verwenden Sie einfach dieses 

echo date('Y-m-d',strtotime("yesterday"));
echo date('Y-m-d',strtotime("tomorrow"));
1
SarwarCSE

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 .

1
shadyyx

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'));
0
Alex Joe

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;
?>
0

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);

0
Santosh Shah

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

0
Yosafat Ksatria