date()

1. 定义

该函数格式化一个本地时间或日期。返回格式化后的日期时间字符串。

2. 语法

date ( string $format [, int $timestamp = time() ] ) : string

3. 参数说明

参数 可选性 数据类型 描述
$format 必需 字符串 符合规范的解析日期/时间的格式化字符串
$timestamp 可选 整型 整型的时间戳,默认为当前时间(time()

其中,$format参数有以下几种符号格式规则(注意,下面的结果有些与当前时间有关!):

符号 说明
Y 四位数字的年份表示
y 两位数字的年份表示
L 是否为闰年,如果是闰年则返回1,不是则返回0
o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年
FM 全写或简写的英文月份表示
mn 有前导零或无前导零的数字月份表示
t 指定的月份的天数
W ISO-8601 格式年份中的第几周,每周从星期一开始
z 一年中的第几天,从0开始
w 星期中的第几天
N ISO-8601 格式数字表示的星期中的第几天
dj 有前导零或无前导零的一个月中的第几天表示
S 使用两个字母的缩写表示一个月的第几天,会自动忽略日期后面的stndrdth
Dl 全写或简写的星期表示
Aa 表示一天中的上午或下午
B Swatch Internet 标准时
gh 有前导零或无前导零的12小时制的小时
GH 有前导零或无前导零的24小时制的小时
i 有前导零的分钟表示
s 有前导零的秒数表示
u 毫秒表示,至多精确到六位数
e 时区标识,例如UTCGMTAtlantic/Azores
I 是否为夏令时,是的话为1,不是则为0
O 与格林威治时间相差的小时数
P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔
T 本机所在的时区
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的
c ISO 8601 格式的日期
r RFC 822 格式的日期
U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数

4. 示例

<?php

// date()
// 格式化一个本地时间或日期。返回格式化后的日期时间字符串

$res = date('Y-m-d H:i:s T', time());
var_dump($res);
// 输出:string(23) "2019-08-26 11:09:18 CST"

$res = date('L', time());
var_dump($res);
// 输出:string(1) "0"

$res = date('z', time());
echo '今天是2019年的第', (int)$res + 1, '天',"\n";
// 输出:今天是2019年的第238天

$res = date('P', time());
echo '我们现在所处的时区与标准格林威治时间时差为:', (int)$res, '小时';
// 输出:我们现在所处的时区与标准格林威治时间时差为:8

5. 延展阅读

  • gmdate():格式化一个日期时间
  • idate():接受一个格式化字符来将本地日期时间格式化为一个整数
  • getdate():获取指定时间戳的详细信息。返回一个包含日期时间详细信息的关联数组
  • mktime():返回指定的本地时间的 UNIX 时间戳表示
  • strftime():根据本地区域设置(setlocale()函数)的时区格式化本地日期/时间
  • time():返回当前时间的 Unix 时间戳(当前时间距离 UNIX 纪元1970年1月1日00:00:00的秒数)
  • strtotime():将一个描述日期时间的字符串解析为 Unix 时间戳