簡體   English   中英

我不理解的PHP日期函數用法

[英]PHP date function usage that I don't understand

因此,我已經交給了由其他開發人員構建的WordPress網站,目前我正在研究自定義的工作量。 我遇到了他們用於歸檔帖子的功能,並且遇到了從未使用過的PHP date()函數的使用(盡管可以肯定,我沒有看到很多)

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

有人可以向我解釋一下嗎? 我之前從未見過參數“ Y-1-1”,甚至不知道您可以將其他參數傳遞給date()函數。 我玩了一些參數,或者看不到任何變化,或者破壞了它。

再次感謝)!

只看輸出:

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月1日返回:假設今天是2013年12月27日,

  1. strtotime('-1 year')解析為一年前的今天,即2012-12-27
  2. date中不能識別為格式元素的所有內容均按原義進行解釋(來自文檔Unrecognized characters in the format string will be printed as-is. ),因此格式字符串將轉換為2012-1-1

strtotime函數在解析提供的字符串后返回unix時間戳,在此示例中,該時間戳為我們提供了當前時間(但上一年)的時間戳。

然后, date函數根據以下格式格式化此時間戳: Y-1-1 ,它有效地輸出四位數的年份代替Y ,並按字面輸出1 s。

因此,如果今年運行的是2013 ,則完整的代碼: date('Y-1-1', strtotime('-1 year'))返回字符串2012-1-1

參考文獻:

這是交互式shell的輸出:

~/Code $ php -a
Interactive shell

php > echo strtotime('-1 year');
1356628992
php > echo date('Y-1-1', 1356628968);
2012-1-1
php >

“ Y-1-1”的含義與“當前Year-1-1”的含義相同,因此應為2013-1-1(2013年1月1日)。Date的函數第一個參數可以包含任何字符或格式字符,可能在這里找到: PHP日期

第二個參數是時間戳(UNIX時間戳,它是從1970年1月1日起經過的秒數)。 strtotime('-1 year')為您提供今年前一年的時間戳。

結果將是“ 2012-1-1”。 此代碼清單基本上將給您去年的1月1日作為結果。

date('Y-1-1', strtotime('-1 year')); // 2012-1-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM