PHP: как уменьшить время даты в foreach для каждого элемента ...? - PullRequest
0 голосов
/ 26 июля 2011

... и не только один раз ...

    $now = date("D, d M Y H:i:s O");
    foreach ($items AS $item)
        {

            $currentDate = strtotime($now);
            $pastDate = $currentDate-(60*5);
            $formatDate = date("Y-m-d H:i:s", $pastDate);
            echo "\t\t<item>\n";
            echo "\t\t\t<pubDate>" . $formatDate . "</pubDate>\n" ;

сейчас, я хочу, чтобы formatDate уменьшался на 5 минут каждый раз, я не хочу одинакового времени для каждого элемента ... спасибо

Ответы [ 4 ]

2 голосов
/ 26 июля 2011

Ваша первоначальная идея вычитания (60 * 5) была абсолютно правильной; вам просто нужно продолжать вычитать его из рабочего значения, а не многократно вычитать его из исходного значения согласно вашему коду:

$looptime = time();
foreach ($items AS $item) {
    $looptime -= (60*5);
    $formatDate = date("Y-m-d H:i:s", $looptime);
    echo "\t\t<item>\n";
    echo "\t\t\t<pubDate>" . $formatDate . "</pubDate>\n" ;
}
1 голос
/ 26 июля 2011

Если вы используете PHP 5.3, вы должны проверить DateTime.Он позволяет вам создавать объект за определенное время, и у него есть метод sub(), который можно использовать для уменьшения времени.

1 голос
/ 26 июля 2011
$currentDate = time();
foreach ($items as $item){
    $formatDate = date("Y-m-d H:i:s", $currentDate);
    echo "\t\t<item>\n";
    echo "\t\t\t<pubDate>" . $formatDate . "</pubDate>\n" ;
    $currentDate = strtotime('-5 minutes', $currentDate);
}
0 голосов
/ 26 июля 2011
$now = time();
foreach ($items AS $item)
    {
        echo "\t\t<item>\n";
        echo "\t\t\t<pubDate>" . date("Y-m-d H:i:s", $now) . "</pubDate>\n" ;
        echo "\t\t</item>\n";
        $now -= (60*5);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...