我正在努力展示我网站上的工作日。在管理面板中,用户可以选择商店将打开的日期以及一般时间和特殊时间。 保存所需数据后,我的JSON解码对象看起来像这样:
stdClass Object
(
[Mon] => stdClass Object
(
[DAY_NAME] => Mon
)
[Tue] => stdClass Object
(
[DAY_NAME] => Tue
)
[Wed] => stdClass Object
(
[DAY_NAME] => Wed
)
[Fri] => stdClass Object
(
[DAY_NAME] => Fri
[SPECIAL_START_TIME] => 08:00 am
[SPECIAL_END_TIME] => 07:00 pm
)
[Sat] => stdClass Object
(
[DAY_NAME] => Sat
[SPECIAL_START_TIME] => 03:00 am
[SPECIAL_END_TIME] => 02:00 am
)
)
我已经编写了一个函数,我可以在这里获得本周的第一个开放日和本周的最后一个开放日。 现在,问题出现在假设,开放时间是:周一,周二,周三,周日。 在这种情况下,一周的第一个开放日是星期一,一周的最后一个开放日是星期日。 那么,无论如何,我可以在星期日和星期三的第一个开放日获得第一个开放日吗? 这种逻辑有很多案例,很难得到一个。
答案 0 :(得分:0)
听起来你周一开始一周的想法。 (周日至周六)
您应该切换到以数字方式存储您的星期几。根据您首选的第一天。 0表示星期日 - 6表示星期六。
然后,您可以使用PHP Date函数获取并使用
$dayofweek=date("w",strtotime($your_date_here));
http://php.net/manual/en/function.date.php
然后你可以在一周的某一天做简单的ORDER,并且每次都以相同的顺序进行。您的示例将更改为。
stdClass Object
(
[1] => stdClass Object
(
[DAY_NAME] => Mon
)
[2] => stdClass Object
(
[DAY_NAME] => Tue
)
[3] => stdClass Object
(
[DAY_NAME] => Wed
)
[5] => stdClass Object
(
[DAY_NAME] => Fri
[SPECIAL_START_TIME] => 08:00 am
[SPECIAL_END_TIME] => 07:00 pm
)
[6] => stdClass Object
(
[DAY_NAME] => Sat
[SPECIAL_START_TIME] => 03:00 am
[SPECIAL_END_TIME] => 02:00 am
)
)
答案 1 :(得分:0)
您可以传递要处理基于日期的数据的顺序。像,
stdClass Object
(
[Mon] => stdClass Object
(
[DAY_POSITION] => 1
[DAY_NAME] => Mon
)
[Tue] => stdClass Object
(
[DAY_POSITION] => 2
[DAY_NAME] => Tue
)
[Wed] => stdClass Object
(
[DAY_POSITION] => 3
[DAY_NAME] => Wed
)
[Fri] => stdClass Object
(
[DAY_POSITION] => 5
[DAY_NAME] => Fri
[SPECIAL_START_TIME] => 08:00 am
[SPECIAL_END_TIME] => 07:00 pm
)
[Sat] => stdClass Object
(
[DAY_POSITION] => 6
[DAY_NAME] => Sat
[SPECIAL_START_TIME] => 03:00 am
[SPECIAL_END_TIME] => 02:00 am
)
)