如何从日期数组中回显单个日期?

How to echo individual dates from dates array?

现在我的程序会回显使用 for loop 生成的日期数组。我想做的是单独回显日期。

初始代码

 // initialize an array with your first date
    $dates = array(strtotime("+11 days", strtotime("2017-09-04")));

    for ($i = 1; $i <= 5; $i++) {// loop 5 times to get the next 5 dates

        // add 7 days to previous date in the array
        $dates[] = strtotime("+7 days", $dates[$i-1]);
    }

    // echo the results
    foreach ($dates as $date) {
        echo date("Y-m-d", $date);
        echo "<br>";
    }

初始输出

2017-09-15
2017-09-22
2017-09-29
2017-10-06
2017-10-13

我试过的

echo $dates[0];//print first date
echo "<br>";
echo $dates[1];//print second date

试用输出

1505426400
1506031200

我怎样才能做到这一点?

要么你在输出元素时也需要使用 date() - 因为它们仍然是数组中的时间戳(你不改变循环中的任何东西,你只是打印元素),或者你遍历元素时需要更改元素。

备选方案 1:输出格式

在输出时将时间戳转换为日期字符串。这仍然会在数组中包含时间戳。

echo date("Y-m-d", $dates[0]);

备选方案 2:改变数组中的元素

或者,您可以在遍历 foreach 时更改数组中的值。如果您 通过引用传递 ,您可以使用 & 更改循环内元素的值(这意味着该变量是一个 引用 而不是副本)。这意味着您现在在数组中有日期字符串,而不是时间戳。

foreach ($dates as &$date) {
    echo $date = date("Y-m-d", $date);
    echo "<br>";
}

如果您通过引用传递,您现在可以直接打印它,因为它不再包含时间戳,因为我们将它更改为日期字符串。

echo $dates[0];

您应该只采用最适合您应用的备选方案之一。

试试这个

echo date("Y-m-d", ($dates[0])) . '<br>';
echo date("Y-m-d", ($dates[1])) . '<br>';