我最近遇到了一个应用https://entire.life,其中显示了一个日历,如下图所示,其中显示了您生命中每年的一排点。
点行是52点宽,每行1个点为行年。
每一行都是一年。
每行第1个点周日期从您出生日期的一周开始,而不是在一年的1月1日。所以每周的行数为每年1年,从你的出生日期开始到结束。
下面的最后一张图片显示,今天日期的未来周点显示为灰点,表示这几周尚未发生。
以下是上图中的实际示例,以查看操作中的dit https://entire.life/jason-davis
https://i.stack.imgur.com/ne07D.png
下图显示了为点击的当前周点添加事件的表单。
https://i.stack.imgur.com/K5BUT.png
此图显示未来日期的星点如何为灰色。
https://i.stack.imgur.com/pYGAn.png
问题
使用PHP我想基于用户出生日期生成类似这样的日历,如上面显示的应用程序。
以下是上图中的实际示例,以查看操作中的dit https://entire.life/jason-davis
规则:
使用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岁
答案 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>