我今天感觉有点厚,也许有点累......
我正在尝试将日期添加到字符串日期......
$startdate = "18/7/2011";
$enddate = date(strtotime($startdate) . " +1 day");
echo $startdate;
echo $enddate;
我的脑袋没有它......我哪里出错?
由于
利
答案 0 :(得分:9)
无论
$enddate = date(strtotime("+1 day", strtotime($startdate)));
或
$enddate = date(strtotime($startdate . "+1 day"));
应该有效。但是,两者都没有使用18/7/2011
日期。它们与7/18/2011
:http://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)));