在PHP中的两个日期之间获取日期名称

时间:2013-01-31 06:24:35

标签: php

如何在PHP中获取两个日期之间的天数?

输入:

  

开始日期:01-01-2013
   截止日期:2013年1月5日

输出:

  

星期二
     周三
     周四
     周五
     星期六

尝试代码

$from_date ='01-01-2013';
$to_date ='05-01-2013';

$number_of_days = count_days(strtotime($from_date),strtotime($to_date));

for($i = 1; $i<=$number_of_days; $i++)
{
    $day = Date('l',mktime(0,0,0,date('m'),date('d')+$i,date('y')));
    echo "<br>".$day;       
}


function count_days( $a, $b )
{       
    $gd_a = getdate( $a );
    $gd_b = getdate( $b );

    $a_new = mktime( 12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year'] );
    $b_new = mktime( 12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year'] );

    return round( abs( $a_new - $b_new ) / 86400 );
}

我看到帖子Finding date of particular day between two dates PHP

但我没有得到我的结果 请帮帮我

3 个答案:

答案 0 :(得分:4)

使用DateTime类,它会更简单:

$from_date ='01-01-2013';
$to_date ='05-01-2013';

$from_date = new DateTime($from_date);
$to_date = new DateTime($to_date);

for ($date = $from_date; $date <= $to_date; $date->modify('+1 day')) {
  echo $date->format('l') . "\n";
}

答案 1 :(得分:3)

$from_date ='01-01-2013';
$to_date ='05-01-2013';
$start = strtotime($from_date);
$end = strtotime($to_date);
$day = (24*60*60);
for($i=$start; $i<= $end; $i+=86400)
    echo date('l', $i);

答案 2 :(得分:1)

<?php
    function printDays($from, $to) {
        $from_date=strtotime($from);
        $to_date=strtotime($to);
        $current=$from_date;
        while($current<=$to_date) {
            $days[]=date('l', $current);
            $current=$current+86400;
        }

        foreach($days as $key=> $day) {
            echo $day."\n";
        }
    }
    $from_date ='01-01-2013';
    $to_date ='05-01-2013';
    printDays($from_date, $to_date);
?>

在给定日期(包括)之间每天循环,然后使用date函数在数组中添加相应的日期。打印出阵列和tada!你做完了!