所以我已经交了一个由其他开发人员构建的WordPress网站,我正在弄清楚有多少自定义工作。我已经遇到了他们存档帖子的功能,我遇到了一个我以前从未见过的PHP date()函数(虽然我没有看到很多)
date('Y-1-1', strtotime('-1 year'))
有人可以向我解释一下吗?我以前从未见过参数'Y-1-1',我甚至不知道你可以将其他参数传递给date()函数。我玩了一些参数,我看到没有变化,或者我打破它。
再次感谢!
答案 0 :(得分:3)
看看输出:
echo date('Y-1-1', strtotime('-1 year'));
// 2012-1-1
和文档:
http://php.net/manual/de/function.date.php
http://php.net/manual/de/function.strtotime.php
Y
是四位数年份的关键。-1-1
只是普通字符,被日期函数忽略-1 year
给出了现在的时间戳 - 1年,所以年份是2012年答案 1 :(得分:2)
该电话将于去年1月1日回归:假设今天的日期是2013-12-27,这将给出
strtotime('-1 year')
解决了一年前的今天,即2012-12-27 date
无法识别为格式元素的所有内容都按字面解释(来自documentation:Unrecognized characters in the format string will be printed as-is.
),因此格式字符串将转换为2012-1-1 < / LI>
醇>
答案 2 :(得分:0)
strtotime
函数在解析提供的字符串后返回一个unix时间戳,在本例中,它给出了当前时间的时间戳,但是在前一年。
然后,date
函数会根据格式Y-1-1
格式化此时间戳,该格式有效地输出四位数年代替Y
,并输出1
字面意思。
因此,完整的代码:date('Y-1-1', strtotime('-1 year'))
如果今年运行的是2012-1-1
,则会返回字符串2013
。
参考文献:
以下是交互式shell的输出:
~/Code $ php -a
Interactive shell
php > echo strtotime('-1 year');
1356628992
php > echo date('Y-1-1', 1356628968);
2012-1-1
php >
答案 3 :(得分:0)
'Y-1-1'基本上与'当前年1-1'相同,因此它将是2013-1-1(2013年1月1日'。日期的函数第一个参数可以包含任何字符或格式字符,可在此处找到:PHP Date
第二个参数是timestamp(UNIX时间戳,它是从1970年1月1日起经过的秒数)。 strtotime(' - 1 year')为您提供今年前1年的时间戳。
结果将是'2012-1-1'。 此代码清单基本上为您提供了上一年的1月1日结果。
date('Y-1-1', strtotime('-1 year')); // 2012-1-1