Rumah >pembangunan bahagian belakang >tutorial php >php 获取开始日期与结束日期之间所有日期

php 获取开始日期与结束日期之间所有日期

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2016-07-28 08:29:32991semak imbas

因项目需求,需要获取指定日期段内的数据按每日进行处理。

例如需要对2016-06-01至2016-06-05日期段内,每一天的数据进行处理。首先需要获取这个日期段内每一天日期,再循环执行处理。

<code><span><span><?php </span><span>$date</span> = <span>array</span>(<span>'2016-06-01'</span>,<span>'2016-06-02'</span>,<span>'2016-06-03'</span>,<span>'2016-06-04'</span>,<span>'2016-06-05'</span>);
<span>foreach</span>(<span>$date</span><span>as</span><span>$d</span>){
    <span>// 执行处理</span>
}
<span>?></span></span></span></code>

如果日期段跨度大(2015-09-01至2016-06-30),并且有跨年,跨月(闰月)的情况,人手创建日期数组太费时间且不合理。

因此写了以下方法,可以获取指定日期段内每一天的日期,代码如下:

<code><span><span><span><?php </span>
/**
 * 获取指定日期段内每一天的日期
 *<span> @param</span>  Date  $startdate 开始日期
 *<span> @param</span>  Date  $enddate   结束日期
 *<span> @return</span> Array
 */</span><span><span>function</span><span>getDateFromRange</span><span>(<span>$startdate</span>, <span>$enddate</span>)</span>{</span><span>$stimestamp</span> = strtotime(<span>$startdate</span>);
    <span>$etimestamp</span> = strtotime(<span>$enddate</span>);

    <span>// 计算日期段内有多少天</span><span>$days</span> = (<span>$etimestamp</span>-<span>$stimestamp</span>)/<span>86400</span>+<span>1</span>;

    <span>// 保存每天日期</span><span>$date</span> = <span>array</span>();

    <span>for</span>(<span>$i</span>=<span>0</span>; <span>$i</span>$days</span>; <span>$i</span>++){
        <span>$date</span>[] = date(<span>'Y-m-d'</span>, <span>$stimestamp</span>+(<span>86400</span>*<span>$i</span>));
    }

    <span>return</span><span>$date</span>;
}

<span>// demo</span><span>$date</span> = getDateFromRange(<span>'2016-02-25'</span>,<span>'2016-03-05'</span>);
print_r(<span>$date</span>);

<span>?></span></span></code>

输出:

<code><span>Array</span>
(
    [<span>0</span>] => <span>2016</span>-<span>02</span>-<span>25</span>
    [<span>1</span>] => <span>2016</span>-<span>02</span>-<span>26</span>
    [<span>2</span>] => <span>2016</span>-<span>02</span>-<span>27</span>
    [<span>3</span>] => <span>2016</span>-<span>02</span>-<span>28</span>
    [<span>4</span>] => <span>2016</span>-<span>02</span>-<span>29</span>
    [<span>5</span>] => <span>2016</span>-<span>03</span>-<span>01</span>
    [<span>6</span>] => <span>2016</span>-<span>03</span>-<span>02</span>
    [<span>7</span>] => <span>2016</span>-<span>03</span>-<span>03</span>
    [<span>8</span>] => <span>2016</span>-<span>03</span>-<span>04</span>
    [<span>9</span>] => <span>2016</span>-<span>03</span>-<span>05</span>
)</code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了 php 获取开始日期与结束日期之间所有日期,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP单元测试phpunitArtikel seterusnya:sphinx 排序