首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取多个起始/终止日期的日期范围

问获取多个起始/终止日期的日期范围
EN

Stack Overflow用户
提问于 2014-02-16 02:20:53
回答 1查看 109关注 0票数 0

我有这个php代码,我使用它来禁用日历中的jquery ui日期选择器日期范围。它选择给定范围内的每个日期并对其进行回显。问题是它只回显一个from/to范围,但我需要为每个from/to列使用它:

代码语言:javascript
复制
$a = "select from_date,to_date from ads";

$rez = mysql_query($a) or die(mysql_error());
$c = mysql_num_rows($rez);

while ($re = mysql_fetch_array($rez))
{
    $from = $re["from_date"];
    $to = $re["to_date"];
}
$start=strtotime($from);
$s=date("Y-m-d",$start);
$diff = abs(strtotime($to) - strtotime($s)); 


$yrs   = floor($diff / (365*60*60*24)); 
$mnth  = floor(($diff - $yrs * 365*60*60*24) / (30*60*60*24)); 
$days    = floor(($diff - $yrs * 365*60*60*24 - $mnth*30*60*60*24)/ (60*60*24));
$t=1;



$count = 0;
while($t <= $days){
if ($count++ > 0) echo ", ";
echo(json_encode($s));
$date = strtotime("+1 day", strtotime($s));
$s=date("Y-m-d", $date);
$t++;
}
EN

回答 1

Stack Overflow用户

发布于 2014-02-16 02:43:29

您将获得每一列,但您将覆盖每一列,并保留最后一列被选中。您应该构建一个结果数组,然后循环遍历这些结果。我不是百分之百确定你想要什么,但大概是这样的:

代码语言:javascript
复制
$result = array();
while ($re = mysql_fetch_array($rez))
{
    $from_date = $re["from_date"];
    $to_date = $re["to_date"];
    $start=strtotime($from);
    $s=date("Y-m-d",$start);
    $result[] = array($to_date, $s);
    ## Each element of $result is an array with two elements
    ## So $result[0][0] is the first to_date
}

## Now loop over each $result and process the to_date and $s value

foreach($result as $re){
    //echo $re[0] .' is this result\'s $to_date value';
    //echo $re[1] .' is this result\'s $s value';
    $to_date = $re[0];
    $s = $re[1];

    $diff = abs(strtotime($to_date) - strtotime($s)); 


    $yrs   = floor($diff / (365*60*60*24)); 
    $mnth  = floor(($diff - $yrs * 365*60*60*24) / (30*60*60*24)); 
    $days    = floor(($diff - $yrs * 365*60*60*24 - $mnth*30*60*60*24)/ (60*60*24));
    $t=1;

    $count = 0;
    while($t <= $days){
      if ($count++ > 0) echo ", ";
      echo(json_encode($s));
      $date = strtotime("+1 day", strtotime($s));
      $s=date("Y-m-d", $date);
      $t++;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21801690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档