生成递增日期字符串

时间:2010-03-15 14:38:28

标签: php

我需要生成一串递增日期,如下所示:

(year, month, day, hour, minute)
2010, 2, 12, 11, 30
2010, 2, 12, 11, 31
etc

这样做的最佳方法是什么?我可能想要生成多达1000行这样的

5 个答案:

答案 0 :(得分:4)

您可以使用date classes(注意:DateInterval和DatePeriod仅适用于PHP 5.3),以简化生活。

$start    = new DateTime('2010-02-12 11:30', new DateTimeZone('UTC'));
$interval = new DateInterval('PT1M'); // 1 minute interval
$period   = new DatePeriod($start, $interval, 100); // Run 100 times

foreach ($period as $datetime) {
    // Output like: 2009, 02, 12, 11, 30
    echo $datetime->format("Y, m, d, H, i") . PHP_EOL;
}

对于不那么漂亮但在旧版本的PHP中可用的替代方案,请参阅推荐mktime的其他建议。

答案 1 :(得分:2)

我建议查看PHP的内置函数:datemktime。 一起使用,你可以实现你想要的。

作为一个例子来增加直接从网站上获取的日期。

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
?>

答案 2 :(得分:1)

<?PHP
    for ( $i = 0; $i < 1000; $i++ ) {
        $startTimeSec = mktime(11, 30 + $i, 0, 2, 12, 2010);
        echo date("Y, m, d, h, i", $startTimeSec) . "\n" . '<br />';
    }
?>

答案 3 :(得分:1)

for($i=1;$i<=10;$i++){
 $tomorrow = mktime(0,0,0,date("m"),date("d")+$i,date("Y"));
 echo "Tomorrow is ".date("Y m d", $tomorrow);    
}

答案 4 :(得分:1)

最简单的用PHP&lt;来到我的脑海。 5.3

echo '(year, month, day, hour, minute)', PHP_EOL;
for($i = 0; $i < 1000; $i++) {
    echo date('Y, m, d, H, i', strtotime("+$i minute")), PHP_EOL;
}