我的代码存在问题。显然,我开始用PHP编程,对其高级概念一无所知。所以我要求你的帮助。我想在用户输入的结束日期添加2个月。我在下面尝试了这段代码:
protected function inputEndDate() {
$value = $this->endDate;
$html = "";
$html .= '<label for="enddate">End Date:</label>' . PHP_EOL;
$html .= '<input type="text" readonly name="enddate" id="enddate" value="'.$value.'">';
$html .= '<input type="button" id="enddatebutton" onclick="getEndDate()">' . PHP_EOL;
return $html;
}
protected function inputExpiryDate() {
$value = $this->endDate;
$date = date('Y/m/d', strtotime("$value +2 month"));
$html = "";
$html .= '<label for="expirydate">Expiry Date:</label>';
$html .= '<input type="text" readonly name="expirydate" id="expirydate" value="'.$date.'">';
$html .= '<input type="button" id="expirydatebutton" onclick="getExpiryDate()">' . PHP_EOL;
return $html;
}
但是当我运行程序时,它没有显示正确的值;但它显示了其开始日期的两个月。请帮忙。感谢。
答案 0 :(得分:0)
尝试使用mktime()
。
答案 1 :(得分:0)
试试这段代码,它会起作用
$value = $this->endDate; // yyyy-mm-dd format
$date = strtotime ( '+2 month' , strtotime ( $value ) ) ;
$date = date ( 'Y/m/d' , $date);
echo $date ;
请参阅工作示例http://codepad.org/RM1aXXWI
答案 2 :(得分:0)
我不确定我是否理解你的问题。
如果我调用php函数inputEndDate(),它会为我呈现这个html
<label for="enddate">End Date:</label>
<input type="text" readonly name="enddate" id="enddate" value="">
<input type="button" id="enddatebutton" onclick="getEndDate()">
输入字段enddate的值为空,因为我的代码$this->endDate
为空。
你在哪里得到或填写$this->endDate
?
如果所有3个输入字段都在同一页面上,则需要javascript根据endDate的输入更改expireDate的值 - 请参阅my updated jsfiddle-example。
我看了你的代码 - 我找不到你填充服务器端php var this->endDate
的地方。根据您的其他问题how to use change event to add dates in javascript,我不确定问题所在。
public function setEditBallpark()
和第$this->endDate = $this->ballparkDetails->getBallparkDetailsEndDate();
行this->endDate
,您必须将客户端的值发布到服务器(普通帖子或ajax)。第17行是注释# $_POST["enddate"]
,但唯一可能获得帖子值的地方是第75行的第$this->endDate = $this->createBallparkController->getFormEndDate();
行。但方法名称function setErrorForm()
让我假设此方法是与正常的邮报案件无关。答案 3 :(得分:0)
问题可能是由于$ value = $ this-&gt; endDate;在增加月份计数之前检查$值。我已经检查了你添加2个月的实施情况。
<?php
$value='2012/11/15';
$date = date('Y/m/d', strtotime("$value +2 month"));
echo $date;
答案 4 :(得分:0)
试试这个:
$date = date('Y/m/d', strtotime("+2 month", strtotime($value)));