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));