22

许多例子都是关于在这一天增加天数。但是,如果我有不同的起始日怎么办?

例如(不起作用):

$day='2010-01-23';

// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;

上面的例子不起作用。我应该如何通过在 Date 中放置其他内容来更改起始日期?

4

3 回答 3

50

对于基于您的代码的非常基本的修复:

$day='2010-01-23';

// add 7 days to the date above
$NewDate = date('Y-m-d', strtotime($day . " +7 days"));
echo $NewDate;

如果您使用的是 PHP 5.3+,您可以使用非常方便的新 DateTime 库:

$day = '2010-01-23';

// add 7 days to the date above
$NewDate = new DateTime($day);
$NewDate->add(new DateInterval('P7D');
echo $NewDate->format('Y-m-d');

我现在已经完全改用DateTime自己了,因为它非常强大。您还可以在实例化时轻松指定时区,即new DateTime($time, new DateTimeZone('UTC')). 您可以使用方法add()sub()更改 DateInterval 对象的日期。这是文档:

于 2009-12-17T19:01:00.237 回答
15
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));
于 2009-12-17T19:00:22.780 回答
2

来自 php.com binupillai2003

<?php
/*
Add day/week/month to a particular date
@param1 yyyy-mm-dd
@param1 integer
by Binu V Pillai on 2009-12-17
*/

function addDate($date,$day)//add days
{
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days");
$dateTo=date('Y-m-d',$sum);
return $dateTo;
}

?> 
于 2009-12-17T18:58:54.953 回答