【问题标题】:PHP Loop days from a date and create an arrayPHP循环从日期开始的天数并创建一个数组
【发布时间】:2014-07-05 13:35:57
【问题描述】:

我尝试从 foreach 评分以形成一个数组......不幸的是我不再理解它了。

$date = new DateTime('last sunday');
$interval = DateInterval::createFromDateString('+1 day');
$period = new DatePeriod($date, $interval, 7, DatePeriod::EXCLUDE_START_DATE);

foreach ( $period as $dt ){
    echo $dt->format( "d.m.Y\n" )."<br>";
} 

数组应该是这样的

$dat = array(
    "Monday" => $dt->format("d.m.Y \ n"), 
    "Tuesday" => $dt->format("d.m.Y \ n"), 
    "Wednesday" => $dt->format("d.m.Y \ n"), 
    "Thursday" => $dt->format("d.m.Y \ n"), 
    "Friday" => $dt->format("d.m.Y \ n"), 
    "Saturday" => $dt->format("d.m.Y \ n"), 
    "Sunday" => $dt->format("d.m.Y \ n") 
);

我如何在 foreach 中做到这一点?有人可以帮帮我吗?

谢谢

【问题讨论】:

    标签: php arrays datetime foreach


    【解决方案1】:

    只需将键格式化为日期名称并在 foreach 循环中分配它。示例:

    $date = new DateTime('last sunday');
    $interval = DateInterval::createFromDateString('+1 day');
    $period = new DatePeriod($date, $interval, 7, DatePeriod::EXCLUDE_START_DATE);
    $dat = array();
    foreach($period as $dt) {
        $dat[$dt->format('l')] = $dt->format('d.m.Y');
    }
    
    echo '<pre>';
    print_r($dat);
    

    输出:

    Array
    (
        [Monday] => 30.06.2014
        [Tuesday] => 01.07.2014
        [Wednesday] => 02.07.2014
        [Thursday] => 03.07.2014
        [Friday] => 04.07.2014
        [Saturday] => 05.07.2014
        [Sunday] => 06.07.2014
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多