php在设定日期后显示信息

时间:2018-07-27 18:27:06

标签: javascript php html css

您好,感谢您抽出宝贵的时间来回答我的问题。我目前有一个Php脚本,该脚本可让我在设置的日期后隐藏内容,并用默认文本替换,您可以在下面看到它:

sinon.assert.calledOnce(fhParseSpy);
sinon.assert.calledWith(fhParseSpy, 'success');

我现在想要做的是添加一个额外的脚本,该脚本可以在设置的日期将其重新打开,因此基本上它可以双向运行,在设置的日期之后隐藏内容,然后在另一个日期到来时激活内容,很难解决这个问题,如果您能帮助我,我会很乐意!

非常感谢您的时间和帮助。

3 个答案:

答案 0 :(得分:0)

逻辑是先添加最新日期,再添加最早日期。像这样:

如果日期> = 2018-08-30

第二个日期之后发生了什么

其他日期<= 2018-05-30

第一次约会之前会发生什么

其他

这之间发生了什么

之所以可行,是因为一旦条件满足,它就会中断else / if语句。

答案 1 :(得分:0)

就个人而言,如果您要对日期进行硬编码,我会这样做,主要是因为我不必过多地回到脚本中; p

有一个日期数组,然后匹配最接近的开始日期,然后检查今天是否在匹配数组的开始和结束之间。

<?php
$dates = [
    ['start' => '2018-05-30', 'end' => '2018-06-30'],
    ['start' => '2018-07-26', 'end' => '2018-08-30'], // matches this
    ['start' => '2018-09-30', 'end' => '2018-10-30'],
];

function closest_key($dates, $date) {
    $result = [];
    foreach($dates as $value) {
        $result[] = abs(strtotime($date) - strtotime($value));
    }
    asort($result);
    return key($result);
}

$today = date('Y-m-d');
$date = $dates[closest_key(array_column($dates, 'start'), $today)];

if ($today >= $date['start'] && $today <= $date['end']) {
    echo 'Apply to Graduate';
} else {
    echo 'The application to graduate is not available at this time.';
}

结果(今天是2018年7月27日)

Apply to Graduate

https://3v4l.org/LGpv8

如果日期为2018-09-01,那将是错误的。

同样的想法也可以用Java语言完成,只需要一点点移植即可。

答案 2 :(得分:-1)

更新的答案。

根据您提出的问题和评论的情况,要约从$currentdate即今天$first_expire_date起5天后第一次过期。如果您想从今天起10天后第二次再次开始报价,并从第二次报价开始日期起继续继续进行15天,则应尝试使用

<?php
    // Today
    $currentdate = date('Y-m-d'); 

    // Offer starts. Set it as you want. You can set it to '2018-05-30' in that case you already get $first_expire_date expires.
    $offer_start_date = '2018-07-28';    

    // You can add +220 days, or +1 month or +2 years in the following snippet as you prefer
    // You can also subtract -3 months or -11 years or -1 day as you need
    $first_expire_date = date('Y-m-d',strtotime('+5 days',strtotime($offer_start_date )));

    //2nd time offer start date
    $second_valid_date_start = date('Y-m-d',strtotime('+5 days',strtotime($first_expire_date)));

    //2nd time offer end date
    $second_valid_date_end = date('Y-m-d',strtotime('+15 days',strtotime($second_valid_date_start)));
    ?>


    <?php if ($currentdate  <= $first_expire_date) { ?> 
    <li><p><strong>Apply to Graduate:</strong></p>
    <p><a href="app-graduate-form.php" class="applyBtn">Apply to Graduate</a></p>
    </li>
    <?php }else  ?>

    <?php if (isset($second_valid_date_start) && ($second_valid_date_start <= $second_valid_date_end)) { ?> 
    <li><p><strong>Apply to Graduate:</strong></p>
    <p><a href="app-graduate-form.php" class="applyBtn">Apply to Graduate</a></p>
    </li>
    <?php }else{ ?>

    <p><li><strong>The application to graduate is not available at this time.</strong> If you qualify to graduate, the Registrar’s Office will notify you when the application to graduate is available.</li></p>
    <?php } ?>

我希望它会有所帮助。