Php 为什么到目前为止这些变化没有生效?

Php 为什么到目前为止这些变化没有生效?,php,Php,我有这段代码,它应该改变输出的日期,但我没有得到任何改变。有人能看出哪里出了问题吗 <?php $tempStartDate = "2011-07-04 15:00:00"; $TempDaysFromEvent = "-14"; $newtempStartDate = explode(" ", $tempStartDate); echo "New Temp Start Date: ".$newtempStartDate[0]; echo "<br>"; list($yea

我有这段代码,它应该改变输出的日期,但我没有得到任何改变。有人能看出哪里出了问题吗

<?php 
$tempStartDate = "2011-07-04 15:00:00";
$TempDaysFromEvent = "-14";

$newtempStartDate = explode(" ", $tempStartDate);
echo "New Temp Start Date: ".$newtempStartDate[0];
echo "<br>";
list($year, $month, $day) = explode("-", $newtempStartDate[0]);
echo $year." ". $month. " ". $day;
echo "<br>";

$tempStartDate  =  $tempEndDate  =  date("Y-m-d", mktime(0,0,0,$month,($day+$tempDaysFromEvent),$year));
echo "TempStart Date:".$tempStartDate."<br>";

?>
但我希望它能给我:

New Temp Start Date: 2011-07-04
2011 07 04
TempStart Date:2011-06-20
你有个打字错误


$tempDaysFromEvent
而不是
$tempDaysFromEvent

一个简单得多的解决方案:

$tempStartDate = "2011-07-04 15:00:00";
print date('Y-m-d H:i:s', strtotime('-14 days', strtotime($tempStartDate)));

您应该会收到以下通知:

Notice: Undefined variable: tempDaysFromEvent in C:\tmp\test.php on line 12

您的变量实际上是
$TempDaysFromEvent
。PHP中的变量区分大小写。

定义
$TempDaysFromEvent
时有大写字母,因此将其更改为

$tempStartDate  =  $tempEndDate  =  date("Y-m-d", mktime(0,0,0,$month,($day+$TempDaysFromEvent),$year));

啊,事实上,我刚刚发现了愚蠢的打字错误——我刚刚发现:$TempDaysFromEvent=“-14”;应为$tempDaysFromEvent=“-14”;可能是你的问题有误,也可能是问题所在。PHP是区分大小写的,您定义了$TempDaysFromEvent,然后当您尝试使用它时,它是$TempDaysFromEvent.actually-I刚刚捕捉到它:$TempDaysFromEvent=“-14”;应为$tempDaysFromEvent=“-14”;我同意,但这只是较大代码的一小部分,我需要在其他地方使用这些变量。@Joel您也可以使用此方法将日期分解为组件。例如$month=date('m',strotime('-14天',strotime('start_date)))
$tempStartDate  =  $tempEndDate  =  date("Y-m-d", mktime(0,0,0,$month,($day+$TempDaysFromEvent),$year));