2015-01-17 161 views
-1

我正在构建一个关于事件相关的php,mysql的应用程序。这是用户重复活动/事件的特定功能。用户将选择开始日期和结束日期。现在我想弄清楚如何计算这两个选定日期之间的日期。我正在使用jQuery的datepicker日期选择。选择两个所选日期之间的所有日期

 $start_date = date("Y-m-d", strtotime($_POST['start_date'])); 
    $end_date = date("Y-m-d", strtotime($_POST['end_date'])); 

Datediff似乎没有做的工作,因为它只给出两个日期之间的差异。我需要这两个日期之间的所有日期。

如果有人能够就如何解决这个问题提供建议,那将会很棒。

+0

你想用这些日期做什么? –

+0

与论坛网站不同,我们不使用“谢谢”或“任何帮助表示赞赏”,或在[so]上签名。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –

回答

0

通过这种方式你可以两个日期

$start_date = strtotime($_POST['start_date']); 
    $end_date = strtotime($_POST['end_date']); 

    // Loop between timestamps, 24 hours at a time 
    for ($i = $start_date ; $i <= $end_date ; $i = $i + 86400) { 
       echo date('Y-m-d', $i)."<br>";   

    } 
+0

这是输出---> 1970-01-01 对于所选日期之间: 2015-01-29 ---> 2015-03-29 – user1411837

+0

正确测试.. 。它返回所有日期之间29日1月和29日3月 –

+0

只需复制并粘贴我的代码在PHP中,并尝试 –

-1

之间取日期,我会建议你使用datetime对象

date_default_timezone_set("Europe/Istanbul"); 
$dt = new DateTime("10-01-2014"); 
$diff = $dt->diff(new Datetime("12-01-2014")); 
for($i = 1; $i <= $diff->days; $i++) { 
    $nextdate = $dt->modify("+1 day"); 
    echo $nextdate->format("d-m-Y"); echo "\n"; 
} 
+0

你在测试自己之前张贴在这里???? –

+0

这似乎并没有工作.... $ dt = new DateTime($ _ POST ['start_date']);和$ diff = $ dt-> diff($ _ POST ['end_date']);没有意义,因为它们会抛出空白输出... – user1411837

+0

它们是示例代码,请阅读DateTime [文档](http://php.net/manual/en/class.datetime.php) 我不知道你的start_date字段包含了什么,所以你可能需要改变一点这个示例代码 –

-1
function createDateRangeArray($strDateFrom,$strDateTo) 
    {  
     $aryRange=array(); 

     $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),  substr($strDateFrom,8,2),substr($strDateFrom,0,4)); 
     $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),  substr($strDateTo,8,2),substr($strDateTo,0,4)); 

     if ($iDateTo>=$iDateFrom) 
     { 
      array_push($aryRange,date('Y-m-d',$iDateFrom)); // first entry 
      while ($iDateFrom<$iDateTo) 
      { 
       $iDateFrom+=86400; // add 24 hours 
       array_push($aryRange,date('Y-m-d',$iDateFrom)); 
      } 
     } 
     return $aryRange; 
    } 

发现了上述解决方案,它的伟大工程。感谢大家的时间和建议。

+0

我真的建议你在我的评论中创建你自己的函数库。我编辑了你现在将了解的代码。 http://stackoverflow.com/questions/28000840/php-mysql-select-all-the-dates-between-two-chosen-dates/28000930#28000930 –

相关问题