PHP通过提供日期来获取日期列表

PHP通过提供日期来获取日期列表,php,date,datetime,Php,Date,Datetime,我想通过给出一个日期来获得一周中的天数列表。如果给我“06/11/2013”,我想以PHP数组的形式获取列表,任何帮助都将不胜感激您想获取与给定日期对应的日期的全名吗? 如果是这样的话,你可以这样做: <?php echo date('l', strtotime('2013/11/06')); ?> 我建议您在提问之前,在谷歌上快速搜索,甚至在StackOverflow上搜索。正如哈姆扎在评论中所说,SO已经涵盖了几乎所有关于日期的内容 您可以通过以下方式获得答案: fun

我想通过给出一个日期来获得一周中的天数列表。如果给我“06/11/2013”,我想以PHP数组的形式获取列表,任何帮助都将不胜感激

您想获取与给定日期对应的日期的全名吗? 如果是这样的话,你可以这样做:

<?php
    echo date('l', strtotime('2013/11/06'));
?>

我建议您在提问之前,在谷歌上快速搜索,甚至在StackOverflow上搜索。正如哈姆扎在评论中所说,SO已经涵盖了几乎所有关于日期的内容

您可以通过以下方式获得答案:

function week_from_monday($date) {
    // Assuming $date is in format DD-MM-YYYY
    list($day, $month, $year) = explode("-", $date);

    // Get the weekday of the given date
    $wkday = date('l',mktime('0','0','0', $month, $day, $year));

    switch($wkday) {
        case 'Monday': $numDaysToMon = 0; break;
        case 'Tuesday': $numDaysToMon = 1; break;
        case 'Wednesday': $numDaysToMon = 2; break;
        case 'Thursday': $numDaysToMon = 3; break;
        case 'Friday': $numDaysToMon = 4; break;
        case 'Saturday': $numDaysToMon = 5; break;
        case 'Sunday': $numDaysToMon = 6; break;   
    }

    // Timestamp of the monday for that week
    $monday = mktime('0','0','0', $month, $day-$numDaysToMon, $year);

    $seconds_in_a_day = 86400;

    // Get date for 7 days from Monday (inclusive)
    for($i=0; $i<7; $i++)
    {
        $dates[$i] = date('Y-m-d',$monday+($seconds_in_a_day*$i));
    }

    return $dates;
}
摘自:

这些类使操作变得更简单:-

/**
 * Returns an array of date strings for the
 * week of the given date, starting on Monday
 *
 * @param String $date The date in question
 * @return array An array of date strings
 */
function daysInWeek($date)
{
    $result = array();
    $datetime = DateTime::createFromFormat('m/d/Y', $date);
    $interval = new DateInterval('P1D');
    if($datetime->format('D') !== 'Mon')$datetime->modify('last monday');
    $week = new DatePeriod($datetime, $interval, 6);
    foreach($week as $day){
        $result[] = $day->format('m/d/y');
    }
    return $result;
}

var_dump(daysInWeek("06/11/2013"));
返回:-

array (size=7)
  0 => string '06/10/13' (length=8)
  1 => string '06/11/13' (length=8)
  2 => string '06/12/13' (length=8)
  3 => string '06/13/13' (length=8)
  4 => string '06/14/13' (length=8)
  5 => string '06/15/13' (length=8)
  6 => string '06/16/13' (length=8)

这还有一个额外的优点,就是考虑了夏令时的变化等。

我认为,SO已经涵盖了php中有关日期的几乎所有内容,您是否探讨了这些问题?您需要指定日期的日期或指定日期所在的一周中的所有天?对不起!你们并没有得到它,想要一周中给定日期的天数列表。正如你们所看到的,你们的问题提出了其他问题,关于你们实际想要达到的目标。提供尽可能多的细节,或者完全避免在stackoverflow上发帖的麻烦,从而避免那些试图帮助您避免声誉下降的人。
array (size=7)
  0 => string '06/10/13' (length=8)
  1 => string '06/11/13' (length=8)
  2 => string '06/12/13' (length=8)
  3 => string '06/13/13' (length=8)
  4 => string '06/14/13' (length=8)
  5 => string '06/15/13' (length=8)
  6 => string '06/16/13' (length=8)