Php 有人能解释一下日期(“YW”和标准时间(“2016-01-02”);返回“;201653”;?
年份还行Php 有人能解释一下日期(“YW”和标准时间(“2016-01-02”);返回“;201653”;?,php,date,week-number,Php,Date,Week Number,年份还行 本周从2015年开始PHP与日期一致: 本标准的目的是提供一种明确且定义明确的日期和时间表示方法,以避免对日期和时间的数字表示的误解,尤其是在具有不同书写数字日期和时间约定的国家之间传输数据时 这意味着一年中的第一周定义为: 一年中第一个星期四所在的一周 如果1月1日在星期一、星期二、星期三或星期四,则在第01周。如果1月1日是星期五、星期六或星期日,则是前一年的第52周或第53周(没有第00周) 就PHP而言,这意味着2016年1月2日不是2016年第一周 如果您对date()使用o
本周从2015年开始PHP与日期一致: 本标准的目的是提供一种明确且定义明确的日期和时间表示方法,以避免对日期和时间的数字表示的误解,尤其是在具有不同书写数字日期和时间约定的国家之间传输数据时 这意味着一年中的第一周定义为: 一年中第一个星期四所在的一周 如果1月1日在星期一、星期二、星期三或星期四,则在第01周。如果1月1日是星期五、星期六或星期日,则是前一年的第52周或第53周(没有第00周) 就PHP而言,这意味着2016年1月2日不是2016年第一周 如果您对
date()
使用o
标志,您将获得ISO-8601年,2015年将返回:
date("YW", strtotime("2016-01-02")); returns “201653”
你可能想考虑的是检查月份是一月,星期数是53,然后是新日历年的第一周(不是ISO-8601年)。
PHP使用ISO-8601规范表示周数 一年中第一周的定义(ISO 8601): 第01周的描述相互等效:
- 一周中有一年的第一个星期四(正式的ISO定义)
- 1月4日的一周
- 开始年份中的第一周(四天或四天以上),以及
- 从12月29日至1月4日期间的星期一开始的一周
如果1月1日是星期五、星期六或星期日,则是前一年的第52周或第53周(没有第00周)。12月28日总是一年中的最后一周。
这里有一个例子:
if (date('n') == 1 && date('W') == 53) {
// first calendar week of the year
}
PHP使用ISO-8601年的周数,从周一开始的周数。如果一年中的1月1日不是星期一,则该周被视为上一年的最后一周;第53周
因为2016年1月1日是星期五,所以它是2015年12月28日开始的一周的一部分。如果运行代码
echo date('Y-W',strottime('2015-12-31')代码>您将获得输出“2015-53”,因此根据ISO-8601,同一周的天数也将是第53周。查看ISO年份。1月1日并不意味着新的一年<代码>回音日期(“oW”,标准时间(“2016-01-02”)代码>1月1日,不完全是新年<代码>:)
根据ISO的定义,第01周是一年中第一个星期四所在的一周;
if (date('n') == 1 && date('W') == 53) {
// first calendar week of the year
}
echo date("YW", strtotime("2016-01-02")); //201653
echo date("YW", strtotime("2016-01-04")); //201601