如果在交换机内的两个日期之间做某事

时间:2014-03-18 08:28:17

标签: php date switch-statement

我正在使用开关在幕后工作日改变工作状态:

$today = date('d/m');

switch ($today)
{
case '11/01':
  // do this
  break;
case '15/02':
  // do that
  break;
default:
  // do nothing
}

但是想要将一些更改持续更长时间只需1天,如何在日期1和日期2之间添加一个案例?

我知道我可以在1次更改中添加许多案例,即:

case '11/01':
case '12/01':
case '13/01':
case '14/01':
case '15/01':
  // do this
  break;

但有更好的方法,因为更改可能长达2周吗?

2 个答案:

答案 0 :(得分:1)

您可以按时间戳使用比较。不知怎的,这样:

switch (true) {
case $today == '11/01':
    // do this
    break;
case $today == '15/02':
    // do that
    break;
case ($t = strtotime('today')) >= mktime(0, 0, 0, 1, 11) && $t <= mktime(0, 0, 0, 2, 15):
    // do smth else
    break;
default:
    // do nothing
}

答案 1 :(得分:0)

您可以使用多个案例但不要在上一个语句之前使用break。

switch ($today)
{
case '11/01':
  // do this
  break;
case 'Your other case1':
case 'Your other case2':
case '15/02':
  // will do that for above 3 cases
  break;
default:
  // do nothing
}