前言
前几篇讲了几篇时间格式化友好展示和星期获取的方式,基本都是围绕
date()
函数进行解析和处理,今天这篇文章主要介绍一下date()
函数的使用和传参详细说明
函数说明
date(string $format, int $timestamp = null): string
格式化 Unix 时间戳,使用指定格式的unix时间戳,返回指定格式的格式化字符串
$timestamp
不传的话使用当前时间戳,默认:time()
$format 格式化选项
format 参数字符串可以识别以下字符
format 字符 | 说明 | 返回值示例 |
---|---|---|
日 |
||
d | 月份中的第几天,有补零的两位数字 | 01 到 31 |
D | 文字表示星期几,三个字母 | Mon 到 Sun |
j | 月份中的第几天,没有补零 | 1 到 31 |
l(小写 'L') | 完整文本表示星期几 | Sunday 到 Saturday |
N | ISO 8601 数字表示星期几 | 1(星期一)到 7(星期天) |
S | 月份中的第几天英文后缀,两个字符 |
st、nd、rd 或 th。可以和 j 一起使用 |
w | 数字表示星期几 | 0(星期天)到 6(星期六) |
z | 一年中的第几天(从 0 开始) | 0 到 365 |
周 |
||
W | ISO 8601 格式当年中的第几周,每周从周一开始 | 示例:42(当年的第 42 周) |
月 | ||
F | 月份的完整文本表示,比如 January 或者 March | January 到 December |
m | 月份的数字表示,补零 | 01 到 12 |
M | 简短文本表示月份,三个字母 | Jan 到 Dec |
n | 数字表示几月份,不补零 | 1 到 12 |
t | 指定月份的天数 | 28 到 31 |
年 |
||
L | 是否是闰年 | 如果是闰年为 1,否则为 0。 |
o | ISO 8601 数字年份表示。这和 Y 值相同,但如果 ISO 周数(W)属于上一年或者下一年,则用那一年。 |
示例:1999 或 2003 |
X | 年份的展开全数字表示,至少四位,- 表示公元前,+ 表示公元。 |
示例:-0055、+0787、 +1999、+10191 |
x | 如果需要,年份可以展开全数字表示,如果可能的话,也可以用标准的全数字(Y)表示。至少有四位数字。公元前以 - 为前缀,年份不小于 10000 时以 + 为前缀。 |
示例:-0055, 0787, 1999, +10191 |
Y | 年份完整数字表示,至少四位,使用 - 表示公元前。 | 示例:-0055、0787、 1999、2003、10191 |
y | 两位数的年份表示 | 示例:99 或 03 |
时间 |
||
a | 小写的上午和下午 | am 或 pm |
A | 大写的上午和下午 | AM 或 PM |
B | Swatch 互联网时间 | 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 |
微秒。注意 date() 总是生成 000000,因为它需要一个int 参数,而如果 DateTime 是使用微秒创建的,则DateTime::format() 支持微秒。
|
示例:654321 |
v | 毫秒。与 u 的说明相同。 | 示例:654 |
时区 |
||
e | 时区标识符 | 示例:UTC、GMT、Atlantic/Azores |
I(大写 i) | 是否为夏令时 | 如果是夏令时为 1,否则为 0。 |
O | 跟格林尼治时间(GMT)的差异,小时和分钟时间没有冒号 | 示例:+0200 |
P | 跟格林尼治时间(GMT)的差异,小时和分钟时间有冒号 | 示例:+02:00 |
p |
跟 P 相同,区别是使用 Z 替换 +00:00 返回(PHP 8.0.0 起可用) |
示例:Z 或 +02:00 |
T | 如果知道会返回时区缩写,否则返回 GMT 时差。 | 示例:EST、MDT、+05 |
Z | 以秒为单位的时差。UTC 以西的时区为负的时差,以东为正的时差。 | -43200 到 50400 |
完整日期/时间 |
||
c | ISO 8601 日期 | 2004-02-12T15:19:21+00:00 |
r | » RFC 2822/» RFC 5322 格式化时间 | 示例:Thu, 21 Dec 2000 16:01:07 +0200 |
U | 从 Unix 纪元(January 1 1970 00:00:00 GMT)到至今的秒数 | 参见 time() |