【问题标题】:How can I get all date form selected year?如何获取选定年份的所有日期?
【发布时间】:2016-09-12 09:46:16
【问题描述】:

我的代码功能是在选定年份的范围内获取季节从/到的所有值。

我有 2 个下拉菜单供用户选择从/到年的季节。但是我有一个错误,如果巡回赛的季节从/到小于/大于选定年份,我将无法获得价值。示例:

选择的季节从/到:2015 -2016

from          to
2011-05-06    2014-11-12 (not get - work)
2012-04-01    2015-12-31 (get - work)
2015-01-01    2016-08-10 (get - work)
2016-08-11    2018-12-28 (get - work)
2017-01-01    2018-01-01 (not get - work)

2014-01-11    2017-01-01 (I want get this too, because my selected year is 2015-2016)

我的代码:

$first_day = mktime(0, 0, 0, 1, 1, $params['seasonfrom']) ; //2015-01-01
$first_day = "'".date('Y-m-d',$first_day)."'";

$last_day = mktime(0, 0, 0, 12, 31, $params['seasonto']) ;  //2016-12-31
$last_day = "'".date('Y-m-d',$last_day)."'";

$str1.="(ts.SsnFrom >= {$first_day} AND ts.SsnFrom <={$last_day} 
OR ts.SsnTo >= {$first_day} AND ts.SsnTo <={$last_day})";

谁能给我一个解决方案。谢谢!!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我不懂 PHP。一般建议这个。这可能会对您有所帮助。

    $str1.="({$first_day} BETWEEN ts.SsnFrom AND ts.SsnTo OR {$last_day} BETWEEN ts.SsnFrom AND ts.SsnTo)";
    

    【讨论】:

    • 感谢您的评论。但它不起作用..我检查过,但它只有 2 个赛季(9-12-2014 -> 28-2-2015,01-10-2016 -> 01-01-2017)但我的代码也可以得到这个(01 -03-2015 -> 31-05-2015 , 01-09-2015 ->02-01-2016 ,01-05-2016 -> 30-09-2016)
    • 我在我的数据库中尝试过,它返回了所有行,如你所料。看到这个 SQlfiddle sqlfiddle.com/#!9/bbc556/1
    • 谢谢。通过添加此条件修复:)) OR (ts.SsnFrom ={$last_day})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    相关资源
    最近更新 更多