如何使用 PHP 循环列出 yyyy_mm 格式的日期?
在 PHP 中使用循环按以下方式列出日期的最简洁方法是什么?
2011_10
2011_09
2011_08
2011_07
2011_06
...
2010_03
2009_02
2009_01
2009_12
2009_11
这里的关键要素:
- 应尽可能简单 - 我更喜欢一个 for 循环而不是两个。
- 应将本月的日期列为第一个日期,并应停在固定点 (2009-11)
- 将来不应中断(例如:减去 30 天的秒数可能会起作用,但最终会中断,因为没有确切的值)每个月的秒数)
必须对解决方案进行一些调整:
// Set timezone
date_default_timezone_set('UTC');
// Start date
$date = date('Y').'-'.date('m').'-01';
// End date
$end_date = '2009-1-1';
while (strtotime($date) >= strtotime($end_date))
{
$date = date ("Y-m-d", strtotime("-1 month", strtotime($date)));
echo substr($date,0,7);
echo "\n";
}
What's the cleanest way to use a loop in PHP to list dates in the following way?
2011_10
2011_09
2011_08
2011_07
2011_06
...
2010_03
2009_02
2009_01
2009_12
2009_11
The key elements here:
- Should be as simple as possible - I would prefer one for loop instead of two.
- Should list this month's date as the first date, and should stop at a fixed point (2009-11)
- Should not break in the future (eg: subtracting 30 days worth of seconds will probably work but will eventually break as there are not an exact amount of seconds on each month)
Had to make a few tweaks to the solution:
// Set timezone
date_default_timezone_set('UTC');
// Start date
$date = date('Y').'-'.date('m').'-01';
// End date
$end_date = '2009-1-1';
while (strtotime($date) >= strtotime($end_date))
{
$date = date ("Y-m-d", strtotime("-1 month", strtotime($date)));
echo substr($date,0,7);
echo "\n";
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
也许这个小代码可以做到这一点? :
更复杂的情况。
功劳归于: http://www.if-not-true-then-false.com/2009/php-loop-through-dates-from-date-to-date-with-strtotime-function /
Maybe this little code does the thing? :
more complicated situations.
The credit goes to: http://www.if-not-true-then-false.com/2009/php-loop-through-dates-from-date-to-date-with-strtotime-function/
这就是我猜你要求的,因为它真的没有意义......
This is what im guessing your asking for cause it doesnt really make sense......
PHP 5.3 对 PHP 中的日期/时间处理引入了一些重大改进。例如,下面使用的
第一天
、DateInterval
和DatePeriod
。PHP 5.3 introduces some great improvements to date/time processing in PHP. For example, the
first day of
,DateInterval
andDatePeriod
being used below.