在php中,可以利用date()函数配合“W”字符来获取当前日期是一年的第几周,语法“date('W')”;会返回一个表示年份中的第几周的数字。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

在php中,可以利用date()函数来获取当前日期是一年的第几周。

date() 函数可以格式化一个本地的时间或日期,该函数的语法格式如下:

date($format [,$timestamp])

参数说明如下:

  • $format:表示格式化后的时间格式,可以包含一些具有特殊含义的字符。

  • $timestamp:表示待格式化的时间戳,是一个可选参数,默认为当前时间(省略$timestamp时)。也可以理解为 $timestamp 的默认值为 time()。

当设置date()函数的$formatc参数值为“W”,且$timestamp参数省略或为time()时,可获取当前日期是一年的第几周。

  • W:会根据 ISO-8601 标准格式,使用数字表示年份中的第几周,每周从星期一开始,(PHP 4.1.0 新增)。例如:42(当年的第 42 周)。

示例:

<?php
header("Content-Type: text/html;charset=utf-8");  //可不要,在这里只是为了让确定字符格式,防止乱码。
$week = date('W');
echo '今天是一年中的第'.$week.'周';
?>

1.png

我们来看看是不是:

2.png

3.png

在日历上数了数,的确是第8周。

扩展知识:参数 $format 格式化字符串中可以识别的特殊字符

format 字符说明返回值例子
d月份中的第几天,使用两位的数字表示,不足两位时在前面补 001 到 31
D星期几的英文缩写(使用 3 个字母表示)Mon 到 Sun
l(“L”的小写字母)星期几的英文单词Sunday 到 Saturday
N根据 ISO-8601 标准格式,使用数字表示星期中的第几天(PHP5.1.0 新加)1(表示星期一)到 7(表示星期天)
S每月天数后面的英文后缀(使用 2 个字符表示)st、nd、rd 或者 th。可以和 j 一起使用
w使用数字表示星期中的第几天0(表示星期天)到 6(表示星期六)
z使用数字表示一年中的第几天0 到 365
W根据 ISO-8601 标准格式,使用数字表示年份中的第几周,每周从星期一开始,(PHP 4.1.0 新增)例如:42(当年的第 42 周)
F月份的英文单词,例如 January 或者 JuneJanuary 到 December
m使用两位的数字表示当前月份01 到 12
M月份的英文缩写Jan 到 Dec
n使用数字表示当前月份1 到 12
t指定月份的天数28 到 31
L指定的年份是否为闰年如果是闰年值为 1,否则为 0
o根据 ISO-8601 标准格式使用数字表示年份,这和 Y 的作用相同(PHP 5.1.0 新增)1999 or 2019
Y使用 4 位数字表示完整的年份例如:1999 或 2019
y使用 2 位数字表示年份例如:99 或 03
a小写的上午和下午值am 或 pm
A大写的上午和下午值AM 或 PM
BSwatch Internet 标准时000 到 999
g使用 12 小时格式表示小时数1 到 12
G使用 24 小时格式表示小时数0 到 23
h使用 12 小时格式表示小时数,有前导零01 到 12
H使用 24 小时格式表示小时数,有前导零00 到 23
i使用两位数字表示分钟数,有前导零00 到 59>
s使用两位数字表示秒数,有前导零00 到 59>
u毫秒(PHP 5.2.2 新增)。需要注意的是 date() 函数总是返回 000000,因为它只接受 integer 参数,而 DateTime::format() 才支持毫秒例如:654321
e时区标识例如:UTC、GMT、Atlantic/Azores
I(大写的“i”)是否为夏令时夏令时为 1,否则为 0
O与格林尼治时间相差的小时数例如:+0200
P与格林尼治时间(GMT)的差别,小时和分钟之间由冒号分隔例如:+02:00
T本机所在的时区例如:EST、MDT(在 windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)
Z时差偏移量的秒数,UTC 西边的时区偏移量总是负的,UTC 东边的的时区偏移量总是正的-43200 到 43200
cISO-8601 格式的日期2014-02-12T15:19:21+00:00
rRFC 822 格式的日期例如:Thu,21 Dec 2000 16:01:07 +0200
U从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数和 time() 返回相同的时间戳


php怎么获取当前日期是一年的第几周