将json字符串解码为指定的字符串

时间:2015-02-02 17:04:17

标签: php arrays

我正在努力展示我网站上的工作日。在管理面板中,用户可以选择商店将打开的日期以及一般时间和特殊时间。 保存所需数据后,我的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
        )

)

我已经编写了一个函数,我可以在这里获得本周的第一个开放日和本周的最后一个开放日。 现在,问题出现在假设,开放时间是:周一,周二,周三,周日。 在这种情况下,一周的第一个开放日是星期一,一周的最后一个开放日是星期日。 那么,无论如何,我可以在星期日和星期三的第一个开放日获得第一个开放日吗? 这种逻辑有很多案例,很难得到一个。

2 个答案:

答案 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
        )

)