您好,感谢您抽出宝贵的时间来回答我的问题。我目前有一个Php脚本,该脚本可让我在设置的日期后隐藏内容,并用默认文本替换,您可以在下面看到它:
sinon.assert.calledOnce(fhParseSpy);
sinon.assert.calledWith(fhParseSpy, 'success');
我现在想要做的是添加一个额外的脚本,该脚本可以在设置的日期将其重新打开,因此基本上它可以双向运行,在设置的日期之后隐藏内容,然后在另一个日期到来时激活内容,很难解决这个问题,如果您能帮助我,我会很乐意!
非常感谢您的时间和帮助。
答案 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
如果日期为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 } ?>
我希望它会有所帮助。