从任何日期开始,使用PHP生成一年中每周的开始和结束日期

时间:2016-11-08 18:25:38

标签: php datetime

我最近遇到了一个应用https://entire.life,其中显示了一个日历,如下图所示,其中显示了您生命中每年的一排点。

点行是52点宽,每行1个点为行年。

每一行都是一年。

每行第1个点周日期从您出生日期的一周开始,而不是在一年的1月1日。所以每周的行数为每年1年,从你的出生日期开始到结束。

下面的最后一张图片显示,今天日期的未来周点显示为灰点,表示这几周尚未发生。

以下是上图中的实际示例,以查看操作中的dit https://entire.life/jason-davis

https://i.stack.imgur.com/ne07D.png enter image description here

下图显示了为点击的当前周点添加事件的表单。

https://i.stack.imgur.com/K5BUT.png enter image description here

此图显示未来日期的星点如何为灰色。

https://i.stack.imgur.com/pYGAn.png enter image description here

问题

使用PHP我想基于用户出生日期生成类似这样的日历,如上面显示的应用程序。

以下是上图中的实际示例,以查看操作中的dit https://entire.life/jason-davis

规则:

  • 生成代表一年中每周的一行点
  • 从用户出生日期开始,为上述一周的点数生成一行100年的行数。
  • 每行的起始周点应从用户出生日期开始,而不是从一年的1月1日开始。

使用PHP的DateTime函数如何根据用户出生日期确定52周中每一周的开始和结束日期?

我在这个例子中的出生日期是1983年4月21日 第1年的周点表示基于该开始日期的这些日期:

第一年的点数
- 1983年4月27日 - 27岁 - 0岁 - 1983年4月28日至5月4日 - 0岁 - 1983年5月11日至5日 - 0岁 - 1983年5月18日至12日 - 0岁 - 1983年5月25日 - 0岁 - 1983年5月26日至6月1日 - 0岁 - 1983年6月2日至8日 - 0岁 - 1983年6月9日至9日 - 0岁 - 1983年6月16日至16日 - 0岁 - 1983年6月23日至29日 - 0岁 - ......
- ...... - ......
- 1984年3月29日至4月4日 - 0岁 - 1984年4月11日至5日 - 0岁 - 1984年4月12日至12日 - 0岁 - 19 - 1984年4月20日 - 0岁

年度第二行点
- 21 - 1984年4月27日1岁 - 1984年4月28日至5月4日 - 1岁 - 1984年5月11日 - 1岁 - 1984年5月18日至1日 - 1岁 - 1984年5月25日 - 1岁 - 1984年5月26日至6月1日 - 1岁 - 1984年6月2日至2日 - 1岁 - 1984年6月15日至9日 - 1岁 - 1984年6月16日至16日 - 1岁 - 1984年6月23日至29日 - 1岁 - ......
- ......
- ......
- 1985年3月29日至4月4日 - 1岁
- 1985年4月11日至5日 - 1岁 - 1985年4月12日至18日 - 1岁 - 1985年4月19日至19日 - 1岁

1 个答案:

答案 0 :(得分:2)

你去了:

<form action="index.php" method="POST" autocomplete="off">
    <table>
        <tr>
            <td>
                Username:
            </td>
        </tr>
        <tr>
            <td>
                <input type="text" name="username" placeholder="Username">
            </td>
        </tr>
        <tr>
            <td>
                Password:
            </td>
        </tr>
        <tr>
            <td>
                <input type="password" name="password" placeholder="password">
            </td>
        </tr>
        <tr>
            <td>
                <input type="submit" name="login" value="Login">
            </td>
        </tr>
    </table>
</form>