如果当前日期是2016-03-06,我想获得这些日期:
2016-03-06
2016-03-05
2016-03-04
2016-03-03
我试图达到这个目的,但我的结果不是我想要的:
$_4date = date("y-m-d",strtotime("day"));
$_3date = date("y-m-d",strtotime("-1 day"));
$_2date = date("y-m-d",strtotime("-2 day"));
$_1date = date("y-m-d",strtotime("-3 day"));
echo $_4date;
echo '<br />';
echo $_3date;
echo '<br />';
echo $_2date;
echo '<br />';
echo $_1date;
结果是:
70-01-01
16-03-05
16-03-04
16-03-03
答案 0 :(得分:3)
要使用strtotime
获取今天的约会,请执行strtotime("today");
。但是,正如 Bjorn 所评论的那样,您只需直接致电date()
即可。
此外,您没有获得四位数年份的原因是因为您使用小写y
而不是大写Y
。
尝试date("Y-m-d", strtotime("-1 day"));
。
以下代码说明了所需的更改:
$today = date("Y-m-d");
$yesterday = date("Y-m-d", strtotime("-1 day"));
echo "$today <br />";
echo "$yesterday <br />";
// Output
2016-03-06
2016-03-05
如需更多信息,请咨询PHP documentation on the date function。它实际上向您展示了对y
和Y
的期望,并且它还向您显示作为第二个参数传递的默认值是time()
,这意味着默认值是当前时间
strtotime()
函数及其可能参数的更多信息,可以参考PHP's strtotime documentation。
在提出问题之前,请先检查(PHP)文档。
答案 1 :(得分:3)
你需要这样使用:
$_4date = date("Y-m-d");
$_3date = date("Y-m-d",strtotime("-1 day"));
$_2date = date("Y-m-d",strtotime("-2 day"));
$_1date = date("Y-m-d",strtotime("-3 day"));
<强>解释强>:
对于当前日期,无需使用strtotime()
。
全年您需要使用此格式Y-m-d
。
y-m-d
会向您返回16-03-06
的日期,但Y-m-d
会向您返回2016-03-06
。
答案 2 :(得分:3)
使用for
循环strtotime( "... days ago" )
:
for( $i = 0; $i < 4; $i++ )
{
echo date( 'Y-m-d', strtotime( "$i days ago" ) ) . PHP_EOL;
}
第一个循环(0 days ago
)将输出今天的日期,其他循环将输出过去几天。
的 eval.in demo 强>
答案 3 :(得分:2)
<?php
$date = [date("Y-m-d")];
for($i = 1; $i < 4; $i++) {
$date[] = date("Y-m-d",strtotime("-$i day"));
}
//For cli output you'll need:
echo implode("\n", $date) . "\n";
//For web output you'll need:
echo implode("<br />", $date) . "<br />";
答案 4 :(得分:2)
你需要使用资本&#39; Y&#39;全年(2016年),而不是小&#39; y&#39;这将以速记(16)显示年份。
目前的日期只需使用date("Y-m-d")
。
<?php
$_4date = date("Y-m-d");
$_3date = date("Y-m-d",strtotime("-1 day"));
$_2date = date("Y-m-d",strtotime("-2 day"));
$_1date = date("Y-m-d",strtotime("-3 day"));
echo $_4date;
echo '<br />';
echo $_3date;
echo '<br />';
echo $_2date;
echo '<br />';
echo $_1date;
?>