获取下一个和前一天的PHP
我有2个箭头设置,点击第二天,接下来的2天,即将和前一天,2天前,即将。 代码似乎不工作? 因为它只有下一个和前一天。
<a href="home.php?date=<?= date('Ym-d', strtotime('-1 day', strtotime($date))) ?>" class="prev_day" title="Previous Day" ></a> <a href="home.php?date=<?= date('Ym-d', strtotime('+1 day', strtotime($date))) ?>" class="next_day" title="Next Day" ></a> 有没有办法,如果我点击下一个button,date将持续改变第二天。 一会儿它只会提前一天
 date('Ym-d', strtotime('+1 day', strtotime($date))) 
应该读
 date('Ym-d', strtotime(' +1 day')) 
更新以回答关于连续更改date的问题。
 <?php $date = isset($_GET['date']) ? $_GET['date'] : date('Ym-d'); $prev_date = date('Ym-d', strtotime($date .' -1 day')); $next_date = date('Ym-d', strtotime($date .' +1 day')); ?> <a href="?date=<?=$prev_date;?>">Previous</a> <a href="?date=<?=$next_date;?>">Next</a> 
这将从当时的date起增加和减less一个date。
使用
 $time = time(); 
前一天 –
 date("Ymd", mktime(0,0,0,date("n", $time),date("j",$time)- 1 ,date("Y", $time))); 
2天前
 date("Ymd", mktime(0,0,0,date("n", $time),date("j",$time) -2 ,date("Y", $time))); 
第二天 –
 date("Ymd", mktime(0,0,0,date("n", $time),date("j",$time)+ 1 ,date("Y", $time))); 
接下来的2天
 date("Ymd", mktime(0,0,0,date("n", $time),date("j",$time) +2 ,date("Y", $time))); 
要求:PHP 5> = 5.2.0
你应该使用Php中的DateTime和DateInterval类,事情会变得非常简单和可读。
例如:让我们得到前一天。
 // 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('Ym-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); */ 
参考文献:现代PHP,新function和良好实践作者:Josh Lockhart
 strtotime('-1 day', strtotime($date)) 
这将返回给定date和$ date.so之间差异的秒数,您将得到错误的结果。
假设$ date是今天的date,-1天意味着它返回-86400作为差异,当你尝试使用date,你会得到1969-12-31 Unix时间戳的开始date。
这样称呼就足够了:
 <a href="home.php?date=<?= date('Ym-d', strtotime('-1 day')) ?>" class="prev_day" title="Previous Day" ></a> <a href="home.php?date=<?= date('Ym-d', strtotime('+1 day')) ?>" class="next_day" title="Next Day" ></a> 
另请参阅文档 。
简单地使用这个
 echo date('Ym-d',strtotime("yesterday")); echo date('Ym-d',strtotime("tomorrow")); 
PHP脚本-1 ****其下一个date
 <?php $currentdate=date('Ym-d'); $date_arr=explode('-',$currentdate); $next_date= Date("Ymd",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('Ym-d'); $date_arr=explode('-',$currentdate); $next_date= Date("Ymd",mktime(0,0,0,$date_arr[1],$date_arr[2],$date_arr[0]+1)); echo $next_date; ?> 
以防万一,如果你想从今天的日子第二天或前一天
date(“Ymd”,mktime(0,0,0,date(“m”),date(“d”) – 1,date(“Y”)));
只需将“-1”改为“+1”即可,Yosafat
始终确保已设置您的默认时区
 date_default_timezone_set('Europe/Berlin'); 
创buildDateTime实例,保存当前的date时间
 $datetime = new DateTime(); 
创build一天的时间间隔
 $interval = new DateInterval('P1D'); 
修改DateTime实例
 $datetime->sub($interval); 
 显示结果,或者print_r($datetime); 为更多的洞察力 
 echo $datetime->format('Ym-d'); 
小费:
 如果您不想更改默认时区,请改用DateTimeZone类。 
 $myTimezone = new DateTimeZone('Europe/Berlin'); $datetime->setTimezone($myTimezone); 
 或者只是将其包含在构造函数中,以这种formsnew DateTime("now", $myTimezone);