2015-09-30 108 views
2

我有一个duration下拉菜单选项'年/季度/月'和start date带日期选择器的文本框。还有另一个文本框end_date。从期限计算结束日期

根据持续时间,我需要选择持续时间和开始日期的结束日期。

例如为:开始日期是23-09-2015并选择持续时间为3 months所以,我需要显示23-12-2015。但我不知道该怎么做。

+1

看看'strtotime();'它应该做你正在寻找的东西。 – Epodax

+1

所以,*任何*你试图自己? – planetmaker

+0

使用['DateTime'](http://php.net/manual/en/class.datetime.php)类。特别是,查看['DateTime :: add()'](http://php.net/manual/en/datetime.add.php)方法。 – Phylogenesis

回答

0

试试这个。这是一个例子。我希望这将有所帮助。

<?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"); 
0

使用

$date = date_create('2015-09-30'); 
date_add($date, date_interval_create_from_date_string('3 Months')); 
echo date_format($date, 'Y-m-d'); 
0

请检查该

<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" /> 
0

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

对于教程去这里:Add a duration or interval to a date

相关问题