我有网址:
这是:
$date = new DateTime("2011-11-28");
这告诉我:
2011-11-28
我想添加此网站按钮PREVIOUS和NEXT。 如果我点击下一步,那么我有网址:
http://www.mysite.com/number/2
现在这告诉我:
2011-12-05 //(+ 7 days)
我有按钮PREVIOUS(http://www.mysite.com/number/1)和NEXT(http://www.mysite.com/next/3) 等
我如何修改
$date = new DateTime("2011-11-28");
使用$ _GET ['number']?我已经修改了2011-11-28间隔7天!
答案 0 :(得分:1)
查看DateTime::modify(PHP> = 5.2)
您想要做的是:
// just for checking if nobody is tampering with the number variable:
if (strcspn($_GET['number'], '0123456789') != strlen($_GET['number']) {
die('Invalid input!');
}
// actual calculation:
$amountOfDays = ((int)$_GET['number']) * 7;
$date = new DateTime("2011-11-28");
$date->modify('+'.$amountOfDays.' day');
或者,您可以使用DateTime::add,但这仅在PHP版本中定义> = 5.3。
答案 1 :(得分:0)
$date = new DateTime("2011-11-28");
$num = $_GET['number'];
$interval = new DateInterval('P'.$num.'W');
$date->add($interval);
或者,您可以使用modify
$date = new DateTime("2011-11-28");
$num = $_GET['number'];
$date->modify(($num>0 ? '+' : '').$num.' weeks');
答案 2 :(得分:0)
您还可以查看mktime()
http://php.net/manual/en/function.mktime.php
您可以将主日期转换为时间戳并添加7天:
$new_date = mktime(0, 0, 0, 11, (28 + intval($_GET['number'])), 2011);
$visible_date = date('Y-m-d', $new_date);
echo $visible_date;
答案 3 :(得分:0)
使用:
$date = new DateTime('@'.strtotime( $_GET['number'] . ' week'));
其中$_GET['number']
是自然数。
答案 4 :(得分:0)
试试这个:
$days = (intval($_GET['number']) - 1) * 7;
$date = new DateTime('2000-01-01');
$date->add(new DateInterval("P$daysD"));
答案 5 :(得分:-1)
我喜欢strtotime很多:) 它的工作原理如下:
$date = new DateTime("2011-11-28");
$prevWeek = strtotime('-1 week',$date);
$nextWeek = strtotime('+1 week',$date);