if变量的条件问题

时间:2012-08-22 20:19:57

标签: php

我的存储过程中有两个参数,即@startdate和@enddate。用户从文本框中选择startdate,也从文本框中选择enddate。然后单击“提交”。

我想确保如果用户在两个方框中都留空,它应显示整个当月的数据,即01/08/2012至2012年8月31日。

如果用户只选择任何一个框中的日期,则另一个文本框应具有相同的值。

所以我已经声明了如下变量并尝试了条件,但它总是显示整月的数据,而不管选择了什么日期。我认为我的if条件存在问题。

$startdate = isset($_REQUEST['startdate']) ? $_REQUEST['startdate'] : null;
$enddate   = isset($_REQUEST['enddate']) ? $_REQUEST['enddate'] : null;
if (empty($startdate)) {
    $startdate = $enddate;
}
if (empty($enddate)) {
    $enddate   = $startdate;
}
if (empty($startdate))
    ;
if (empty($enddate))
    ;
$startdate = '01/08/2012';
$enddate   = '31/08/2012';

3 个答案:

答案 0 :(得分:4)

最后两个if语句对程序流没有影响。您始终将$startdate$enddate设置为指定日期。

你需要:

if(empty($startdate)) $startdate = '01/08/2012';
if(empty($enddate)) $enddate = '31/08/2012';

如果你想在每次使用这样的东西时获得实际月份的第一天和最后一天:

if(empty($startdate)) $startdate = date('01/m/Y', strtotime("-1 month"));
if(empty($enddate)) $enddate = date('d/m/Y', strtotime("-1 month"));

答案 1 :(得分:1)

我认为这会起作用

$startdate = isset($_REQUEST['startdate']) ? $_REQUEST['startdate'] : "";
$enddate = isset($_REQUEST['enddate']) ? $_REQUEST['enddate'] : "";

if (empty($startdate) && (empty($enddate)) {
    $startdate = '01/08/2012';
    $enddate = '31/08/2012';
} elseif (empty($startdate) {
    $startdate = $enddate;
} elseif (empty($enddate) {
    $enddate = $startdate;
}

如果两者都是空的,则使用本月的开始和结束;如果一个或另一个为空,则使用另一个的值。

答案 2 :(得分:1)

逻辑不正确。这应该有用。

$startdate = isset($_REQUEST['startdate']) ? $_REQUEST['startdate'] : null;
$enddate = isset($_REQUEST['enddate']) ? $_REQUEST['enddate'] : null;

if (empty($startdate)) {
$startdate  = $enddate ;
}
elseif (empty($enddate)) {
$enddate = $startdate;
}
elseif(empty($startdate) && empty($enddate)) {
$startdate = '01/08/2012';
$enddate = '31/08/2012';
}