PHP添加月份失败

PHP添加月份失败,php,time,Php,Time,我正在使用 $membercontract\u enddate=date('d.m.Y',strottime(“+'$months\u o\u duration'months',strottime('$membercontract\u startdate')) $membercontract\u startdate包含2014年4月9日的时间戳 $months\u o\u duration包含月数,在我的示例10中 $membercontract\u enddate在本cas中应为起始日期加个月

我正在使用

$membercontract\u enddate=date('d.m.Y',strottime(“+'$months\u o\u duration'months',strottime('$membercontract\u startdate'))

$membercontract\u startdate
包含2014年4月9日的时间戳

$months\u o\u duration
包含月数,在我的示例10中

$membercontract\u enddate
在本cas中应为起始日期加个月,即2015年2月9日


但是,事实上,它总是得到1970年1月1日。这是为什么呢?

strotime
将字符串转换为unix。所以最终的结果应该是一个字符串

$membercontract_startdate = "09-Apr-2014";
$months_o_duration = 10;

$unix_start = strtotime($membercontract_startdate);
$months_o_duration_seconds = $months_o_duration * 30 * 24 * 60 * 60;
$unix_end = $unix_start + $months_o_duration_seconds;

$membercontract_enddate = date('d.m.Y', $unix_end);
echo $membercontract_enddate;

// out = 03.02.2015 // because of 30 days 

// in order to get 9-Feb-2015
$membercontract_startdate = "09-Apr-2014";
$unix_start = strtotime($membercontract_startdate, "+10 month");
$membercontract_enddate = date('d.m.Y', $unix_start);
echo $membercontract_enddate;

// out = 09.04.2014

你可以一行就完成。。我只是在解释而没有看到您实际上是如何声明其余变量的,这很可能是由于您在
$membercontract\u startdate
引用周围使用单引号(
'
)造成的-在PHP中,单引号中的变量不会被解释


有关详细信息,中包含有关单引号和双引号之间差异的信息。

可能是因为
strotime()
参数中有不必要的引号。它应该是
$membercontract\u enddate=date('d.m.Y',strottime(“+$months\u o\u duration months',strottime($membercontract\u startdate))。注意我是如何更改引号的。您的解决方案在Dreamweaver中变为红色。但我会在服务器上试试。为什么单引号会在PHP查询中被解释?…`“从表中选择*,其中ID='$var'`?@HKK,因为它们已经封装在双引号中,所以因为字符串本身是使用双引号声明的,所以变量名仍然会自动展开。”。