首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何打印两个日期之间的所有日期

如何打印两个日期之间的所有日期
EN

Stack Overflow用户
提问于 2019-01-22 08:55:06
回答 4查看 54关注 0票数 1

如果可能的话我会咨询你的。

我有两个包含日期的字符串: d/m/Y

暂时:

代码语言:javascript
运行
复制
$from_date= "17/10/2018";

$till_date = "20/10/2018";

是否可以打印这些日期之间的总日数,也可以打印日期?

暂时:

4天

代码语言:javascript
运行
复制
17/10/2018

18/10/2018

19/10/2018

20/10/2018
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-01-22 08:59:33

这应该是可行的:

代码语言:javascript
运行
复制
$start = new DateTime('2018-10-17');
$end = new DateTime('2018-10-20');

while ($start <= $end) {
    echo $start->format('Y-m-d') . '<br>';
    $start->modify('+1 day');
}
票数 4
EN

Stack Overflow用户

发布于 2019-01-22 09:04:22

使用DateTime类及其关联的方法createFromFormat将所提供的日期转换为可行的格式,并添加DateInterval使其相当倾斜

代码语言:javascript
运行
复制
$int    = new DateInterval('P1D');
$start  = DateTime::createFromFormat('d/m/Y','17/10/2018')->sub( $int );
$end    = DateTime::createFromFormat('d/m/Y','20/10/2018');


while( $start < $end )echo $start->add( $int )->format('Y-m-d') . '<br />';

产出:

代码语言:javascript
运行
复制
2018-10-17
2018-10-18
2018-10-19
2018-10-20

若要获得指定的输出格式,请更改提供给format方法的format字符串-即:->format('d-m-Y')

票数 1
EN

Stack Overflow用户

发布于 2019-01-22 08:57:45

只是为了帮助实现.is而不是完整的描述

您可以使用以下代码

代码语言:javascript
运行
复制
echo date('Y-m-d', strtotime($from_date. ' + 1 days'));

第二天直到到达$till_date

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54304498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档