0

……而且不止一次……

    $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

4 回答 4

2

您最初减去 (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" ;
}
于 2011-07-25T21:01:53.673 回答
1
$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);
}
于 2011-07-25T20:52:20.457 回答
1

如果您使用的是 PHP 5.3,您应该检查DateTime. 它允许您为特定时间创建一个对象,并且它有一个sub()可以用来减少时间的方法。

于 2011-07-25T20:52:29.620 回答
0
$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);
    }
于 2011-07-25T20:56:35.110 回答