行,
我正在使用以下代码来反转昨天在php中使用的日期。
<?php
$d=date("F j Y");
$d=explode(" ", $d);
$month=$d[0];
$day=$d[1];
$year=$d[2];
<?php for ($i=10; $i>0; $i--)
{
$date=$month."-".$day--."-".$year;
echo $date;
?>
直到昨天3月31日晚上,这对我有用。但是在4月1日早上开始印刷
April-1-2012
April-0-2012
4月 - 2012年4月1日至2012年2月2日
等等。
这是我用来扭转约会的错误逻辑。我很快就意识到了。 我想这就像以下一样。
April-1-2012
2012年3月31日
2012年3月30日
三月-29-2012
等等
那怎么可能呢?
提前致谢。
嗯,这也是一个对我有用的逻辑,我在发帖后提出。但我非常感谢所有答案。这也让我很清楚。
<?php
$d=date("F j Y");
for ($i=0; $i>-10; $i--)
{
$date="<br>".date('F-j-Y', strtotime("+$i days"));
echo $date;
}
?>
答案 0 :(得分:3)
这可能是最快捷的方式
for($i=1; $i <= 10; $i++) {
echo date("F j Y", time()-($i*24*60*60)); //Instead of 24*60*60 write 86400 to increase slight performance
}
答案 1 :(得分:2)
要逐步减少:
$date = date("F j Y");
for ($i = 0; $i < 10; ++$i)
{
$dates[] = date("F-j-Y", strtotime($date . ' - ' . $i . ' day'));
}
答案 2 :(得分:1)
如果您使用的是PHP5.2,则可以使用DateTime类和修改方法。
http://www.php.net/manual/en/datetime.modify.php
<?php
$date = new DateTime('2006-12-12');
$date->modify('-1 day');
echo $date->format('F-j-Y');
?>
在5.3中,您可以在DateTime类中使用sub方法:http://www.php.net/manual/en/datetime.sub.php
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P1D'));
echo $date->format('F-j-Y');
?>
这是一个例子,使用PHP 5.2 DateTime类(例如:http://ideone.com/uwkjj):
$date = new DateTime();
echo $date->format('F-j-Y');
for($i = 0; $i < 10; $i++){
$date->modify('-1 day');
echo $date->format('F-j-Y');
}
以下是使用PHP5.3 DateTime类和子方法
的示例$date = new DateTime();
echo $date->format('F-j-Y');
for($i = 0; $i < 9; $i++){
$date->sub(new DateInterval('P1D'));
echo $date->format('F-j-Y');
}
在strtotime的PHP帮助页面上还有一个有趣的注释:http://www.php.net/manual/en/function.strtotime.php表示不会将其用于数学运算。我想知道这意味着什么。但我想减去1天应该没问题。
从PHP手册:
不建议使用此函数进行数学运算。它 最好在PHP 5.3和中使用DateTime :: add()和DateTime :: sub() 稍后,或PHP 5.2中的DateTime :: modify()。