我需要关于生成与过去七天至十天相比今天的日期和日期的帮助。如何创建一个可以处理周,月和年变化的准确时间戳?在php中生成前七天的日期
回答
最简单的办法是获得对应于今天时间戳,使用time()
功能;和7次删除1天至该时间戳,每个呼应对应于该时间戳记日期:
$timestamp = time();
for ($i = 0 ; $i < 7 ; $i++) {
echo date('Y-m-d', $timestamp) . '<br />';
$timestamp -= 24 * 3600;
}
这将让你的输出:
2010-02-25
2010-02-24
2010-02-23
2010-02-22
2010-02-21
2010-02-20
2010-02-19
因为时间戳仅代表秒数自1970-01-01
开始,一天减去时间戳意味着减去24*3600
秒。评论后
编辑:
对于月份和星期的变化,这仍然将工作:一天仍然是24 * 3600秒。
例如,如果你测试使用该行,而不是第一个我张贴在我的第一个例子:
$timestamp = strtotime('2010-02-03');
你会得到这样的输出:
它改变了一个月精细。
闰年,如果我测试使用这样的:
$timestamp = strtotime('2008-03-03');
我得到:
2008-03-03
2008-03-02
2008-03-01
2008-02-29
2008-02-28
2008-02-27
2008-02-26
也很正常,因为在2月29日日子是2008年
如果我测试:
$timestamp = strtotime('2009-03-03');
我得到:
2009-03-03
2009-03-02
2009-03-01
2009-02-28
2009-02-27
2009-02-26
2009-02-25
也很正常了。
for($i = 1; $i <= 10; $i++){
echo strtotime("-$i days"), PHP_EOL;
}
另请参阅此相关的问题和答案:
我喜欢这...非常横向... – 2010-02-25 22:09:03
要生成上午12点的时间戳为最近10天(包括今天)下面的代码将做到:您可以根据需要在this page of the php manual找到
<?php
for ($i=0; $i<=10; $i++) {
echo mktime (0, 0, 0, date('m'), date('d')-$i, date('Y'));
}
?>
它会处理月份和星期的变化吗?闰年呢? – 2010-02-25 22:09:42
一切。
如果你足够幸运能够使用PHP 5.3(为什么不能?),那么类也将非常有用。以下示例显示相对于今天的前7天(与今天一起)的日期。
$start = new DateTime('-7 days', new DateTimeZone('UTC'));
$period = new DatePeriod($start, new DateInterval('P1D'), 7);
foreach ($period as $date) {
var_dump($date->format('D d-m-Y'));
}
,其输出是这样的:
string(14) "Thu 18-02-2010"
string(14) "Fri 19-02-2010"
string(14) "Sat 20-02-2010"
string(14) "Sun 21-02-2010"
string(14) "Mon 22-02-2010"
string(14) "Tue 23-02-2010"
string(14) "Wed 24-02-2010"
string(14) "Thu 25-02-2010"
类似的可以在下面的代码段(其产生与上述相同的输出)与strtotime相对容易地完成为:
for ($i = 7; $i >= 0; $i--) {
var_dump(date('D d-m-Y', strtotime("-$i days")));
}
- 1. PHP日期函数七天以前
- 2. 比较今天的日期与日历日期(接下来的七天只有其他生成警报)
- 3. 在PHP中生成日期
- 4. PHP日期提前一天?
- 5. 生成一天日期+ daydiff
- 6. PHP:生日检查今天的日期
- 7. Oracle SQL - 两天前和七天后发生的周年纪念
- 8. 当天在php中的当天日期
- 9. 如何在php中生成日期
- 10. 在PHP中生成日期字符串
- 11. 生日前一天
- 12. PHP的日期到当天的当前日期
- 13. 在当前日期时间中添加日期时发生的天数
- 14. PHP日期比较15天以前
- 15. PHP如果日期> 13天前
- 16. 生成日期范围天行
- 17. 生成日期范围SQL天
- 18. PHP日期函数是当前当地日期的后一天
- 19. 在当前日期前3天和在
- 20. 检查日期是否在过去七天内
- 21. 仅一天派生日期(1,2,3..31),基于当前日期
- 22. PHP:日期“昨天”,“今天”
- 23. 前一天的日期@ 4am
- 24. 在PHP中获取今天的日期?
- 25. 天按日期PHP
- 26. 在选定日期和今天日期之前禁用日期
- 27. 当前月份第一天的日期和提前5天的日期。 MySQL的
- 28. 如何在SQL中针对每个日期映射滚动过去的七天?
- 29. PHP日期() - 如何显示不是今天的日期?在PHP
- 30. 设置日期前三天
这不会处理闰年 – 2010-02-25 22:05:48
以及月和周的变化......? – 2010-02-25 22:06:50
@Allain和@Anurag:我编辑了我的帖子以给出其他几个例子;你有没有工作的具体案例? – 2010-02-25 22:12:03