我有两个箭头设置,点击第二天,接下来的两天,很快和前一天,两天前,很快。代码似乎不能工作?因为它只有一个第二天和前一天。
<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>
是否有一种方法,如果我点击下一个按钮,日期将在第二天不断变化。暂时它只会提前一天
date('Y-m-d', strtotime('+1 day', strtotime($date)))
应该读
date('Y-m-d', strtotime(' +1 day'))
更新以回答评论中关于不断更改日期的问题。
<?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>
这将从您当时所在的日期开始增加或减少一个日期。
直接使用
echo date('Y-m-d',strtotime("yesterday"));
echo date('Y-m-d',strtotime("tomorrow"));
要求: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('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);
*/
参考资料:现代PHP,新特性和良好实践
使用
$time = time();
前一天-
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time)- 1 ,date("Y", $time)));
For 2 days ago
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time) -2 ,date("Y", $time)));
For Next day -
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time)+ 1 ,date("Y", $time)));
未来2天
date("Y-m-d", mktime(0,0,0,date("n", $time),date("j",$time) +2 ,date("Y", $time)));
这样称呼就足够了:
<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>
strtotime('-1 day', strtotime($date))
返回给定日期与$date的秒差数。所以你得到了错误的结果。
假设$date是今天的日期,-1 day表示它返回-86400作为差值,当您尝试使用date时,您将得到1969-12-31 Unix时间戳的开始日期。
您可以使用'now'作为字符串来获取今天/明天/昨天的日期:
$previousDay = date('Y-m-d', strtotime('now - 1day'));
$toDay = date('Y-m-d', strtotime('now'));
$nextDay = date('Y-m-d', strtotime('now + 1day'));
始终确保设置了默认时区
date_default_timezone_set('Europe/Berlin');
创建DateTime实例,保存当前日期时间
$datetime = new DateTime();
create one day interval
$interval = new DateInterval('P1D');
修改DateTime实例
$datetime->sub($interval);
显示结果,或print_r($datetime);
以获得更多信息
echo $datetime->format('Y-m-d');
提示:
如果您不想更改默认时区,请使用DateTimeZone
类。
$myTimezone = new DateTimeZone('Europe/Berlin');
$datetime->setTimezone($myTimezone);
或者将它包含在这个表单的构造函数中new DateTime("now", $myTimezone);
Php脚本1 * * * *它的下一个日期
<?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;
?>
如果你想从今天开始的第二天或前一天
日期("Y-m-d mktime(0, 0, 0,日期("m"),日期("d")1、日期(" Y "))),
把"-1"改成"+1"问候,Yosafat
dateTime()对象也很简单。
$tomorrow = new DateTime('tomorrow');
echo $tomorrow->format("Y-m-d"); // Tomorrow's date
$yesterday = new DateTime('yesterday');
echo $yesterday->format("Y-m-d"); // Yesterday's date
$Day_seconds = 86400;
$next_day = $day_timestamp + $Day_seconds;
$prev_day = $day_timestamp - $Day_seconds;