我有一个duration
下拉菜单选项'年/季度/月'和start date
带日期选择器的文本框。还有另一个文本框end_date。从期限计算结束日期
根据持续时间,我需要选择持续时间和开始日期的结束日期。
例如为:开始日期是23-09-2015
并选择持续时间为3 months
所以,我需要显示23-12-2015
。但我不知道该怎么做。
我有一个duration
下拉菜单选项'年/季度/月'和start date
带日期选择器的文本框。还有另一个文本框end_date。从期限计算结束日期
根据持续时间,我需要选择持续时间和开始日期的结束日期。
例如为:开始日期是23-09-2015
并选择持续时间为3 months
所以,我需要显示23-12-2015
。但我不知道该怎么做。
试试这个。这是一个例子。我希望这将有所帮助。
<?php
$date = date("Y-m-d");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +3 month");
echo date("Y-m-d",$date);
?>
如果您需要添加个月和日期做这样
$date = strtotime(date("Y-m-d", strtotime($date)) . " +3 month 2 day");
使用
$date = date_create('2015-09-30');
date_add($date, date_interval_create_from_date_string('3 Months'));
echo date_format($date, 'Y-m-d');
请检查该
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function(){
$("#start_date").removeClass('hasDatepicker').datepicker(
{
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd',
onSelect: function(selectedDate)
{
var d = new Date(selectedDate);
if($('.date_range').val() == 'Yearly')
{
d.setFullYear(d.getFullYear() + 1);
}
if($('.date_range').val() == 'Quarterly')
{
d.setMonth(d.getMonth() + 3);
}
if($('.date_range').val() == 'Monthly')
{
d.setMonth(d.getMonth() + 1);
}
year = d.getFullYear();
month = ("0" + (d.getMonth() + 1)).slice(-2);
date = ("0" + d.getDate()).slice(-2);
end_date = year +'-'+month+'-'+date;
$('#end_date').val(end_date);
}
});
});
</script>
<select name="date_range" class="date_range">
<option value="None">Please select a date range</option>
<option value="Yearly">Yearly</option>
<option value="Quarterly">Quarterly</option>
<option value="Monthly">Monthly</option>
</select>
<p>Start Date</p>
<input type="text" name="start_date" id="start_date" />
<p>End Date</p>
<input type="text" name="end_date" id="end_date" />
PHP(5.3+)具有整洁的课堂来帮助增加一个持续时间到一个叫做DateI的日期nterval。 (它也有很多其他的很好的间隔功能)
$date = new DateTime('2015-10-02');
$date->add(new DateInterval('P3M'));
echo $date->format('Y-m-d'); // 2016-01-02
在上面的例子中,我添加了3个月到我的日期。你可以不喜欢P4Y1M2D,这是2天,1个月〜4岁等更复杂的事情....
查看PHP文档以了解更多信息:DateInterval
看看'strtotime();'它应该做你正在寻找的东西。 – Epodax
所以,*任何*你试图自己? – planetmaker
使用['DateTime'](http://php.net/manual/en/class.datetime.php)类。特别是,查看['DateTime :: add()'](http://php.net/manual/en/datetime.add.php)方法。 – Phylogenesis