PHP将日期添加到特定日期?

时间:2011-07-28 17:39:30

标签: php datetime date

我今天感觉有点厚,也许有点累......

我正在尝试将日期添加到字符串日期......

$startdate = "18/7/2011";

$enddate = date(strtotime($startdate) . " +1 day");
echo $startdate;
echo $enddate;

我的脑袋没有它......我哪里出错?

由于

6 个答案:

答案 0 :(得分:9)

无论

$enddate = date(strtotime("+1 day", strtotime($startdate)));

$enddate = date(strtotime($startdate . "+1 day"));

应该有效。但是,两者都没有使用18/7/2011日期。它们与7/18/2011http://codepad.viper-7.com/IDS0gI一起正常运行。可能是一些本地化问题。

首先,使用strtotime的第二个参数表示相对于该日期添加一天。在第二种方式中,strtotime将一切都解决了。但显然只有日期是美国的日期格式,或者使用破折号的其他格式:http://codepad.viper-7.com/SKJ49r

答案 1 :(得分:3)

试试这个,(测试并且工作正常)

date('d-m-Y',strtotime($startdate . ' +1 day'));
date('d-m-Y',strtotime($startdate . ' +2 day'));
date('d-m-Y',strtotime($startdate . ' +3 day'));
date('d-m-Y',strtotime($startdate . ' +30 day'));

答案 2 :(得分:0)

date()的第一个参数是格式

d.m.Y G:我:

例如

另外,你的$ startdate无效

答案 3 :(得分:0)

你可能正在寻找strtotime($startdate . "+ 1 day")或其他东西

答案 4 :(得分:0)

首先,您必须更改日期格式 通过调用changeDateFormat(“18/7/2011”):返回:2011-07-18 如果您的解析参数

  

function changeDateFormat($ vdate){
            $ pos = strpos($ vdate,'/');
            if($ pos === false)返回$ vdate;
            $ pieces = explode(“/”,$ vdate);
            $ thisday = str_pad($ pieces [0],2,“0”,STR_PAD_LEFT);
            $ thismonth = str_pad($件[1],2,“0”,STR_PAD_LEFT);
            $ thisyear = $ pieces [2];
            $ thisdate =“$ thisyear- $ thismonth- $ thisday”;
            返回$ thisdate;
     }

这就是..

  

$ startdate = changeDateFormat($ startdate);
  $ enddate = date('Y-m-d',strtotime($ startdate。“+”。$ noOfDays。“day”));

答案 5 :(得分:-1)

这将有效

$startdate = "18/7/2011";
$enddate = date('d/m/Y', strtotime($startdate) + strtotime("+1 day", 0));
echo $startdate;
echo $enddate;

首先,将开始日期解析为整数,然后解析相对时间。

您也可以使用strToTime的第二个参数:

$startdate = "18/7/2011";
$enddate = date('d/m/Y', strtotime("+1 day", strtotime($startdate)));