【发布时间】:2020-10-07 07:29:52
【问题描述】:
基本上,我将日期设置为今天。从那个日期开始,我想得到该月的下一个和上一个 20 天。基本上,从 07/10/2020(d/m/Y 格式的帖子日期)开始,我应该以 20/09/2020(前 20 日)和 20/10/2020(下一个)的日期/时间戳结束20 日)。
我尝试了一些东西,结果是:
$ld_next_str = date("d/m/Y", strtotime("20 day this month"));
$ld_next_dt = DateTime::createFromFormat("d/m/Y", $ld_next_str);
$ld_prev_str = date("d/m/Y", strtotime("20 day last month"));
$ld_prev_dt = DateTime::createFromFormat("d/m/Y", $ld_prev_str);
但事实证明:"20 day this month" 只是在当天增加了 20 天,所以现在(在第七天)它返回 27 号。
知道了这一点,我想我可能只是做一些事情,比如将当前日期减去那个日期 (27 - 7 = 20),但我觉得可能有一种更简单的方法可以做到这一点,使用 strtotime 而无需任何额外步骤.
提前致谢!
PS:我知道您可以使用“第一”/“第二”/“第三”等来获得一些日子......但是(我认为)它不会高于“第十二”,因为我尝试了“第二十” ",但没有奏效......
【问题讨论】:
-
如果您从 25/10/2020 开始,您想要 20/10/2020 和 20/11/2020...?如果您从 20/10/2020 开始呢?
-
为什么不使用获取本月和上月的日期,然后将日期设置为 20 ?
标签: php date datetime strtotime