PHP日期函数用法,我不明白

时间:2013-12-27 17:19:48

标签: php wordpress date

所以我已经交了一个由其他开发人员构建的WordPress网站,我正在弄清楚有多少自定义工作。我已经遇到了他们存档帖子的功能,我遇到了一个我以前从未见过的PHP date()函数(虽然我没有看到很多)

date('Y-1-1', strtotime('-1 year'))

有人可以向我解释一下吗?我以前从未见过参数'Y-1-1',我甚至不知道你可以将其他参数传递给date()函数。我玩了一些参数,我看到没有变化,或者我打破它。

再次感谢!

4 个答案:

答案 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,这将给出

  1. strtotime('-1 year')解决了一年前的今天,即2012-12-27
  2. date无法识别为格式元素的所有内容都按字面解释(来自documentationUnrecognized 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