PHP date():时间日期格式化
当时间和日期保存在计算机中的时候,可以使用 UNIX 时间戳作为标准格式。但是 UNIX 时间戳的可读性很差,所以有时我们需要把 UNIX 时间戳格式化为可读性更好的时间和日期,或者格式化为其它软件需要的格式。
在 PHP 中可以使用 date() 函数来格式化一个本地的时间或日期,该函数的语法格式如下:
参数 $format 格式化字符串中可以识别的特殊字符如下表所示:
在 PHP 中可以使用 date() 函数来格式化一个本地的时间或日期,该函数的语法格式如下:
date($format [,$timestamp])
参数说明如下:- $format:表示格式化后的时间格式,可以包含一些具有特殊含义的字符。
- $timestamp:表示待格式化的时间戳,是一个可选参数,默认为当前时间。也可以理解为 $timestamp 的默认值为 time()。
参数 $format 格式化字符串中可以识别的特殊字符如下表所示:
format 字符 | 说明 | 返回值例子 |
---|---|---|
d | 月份中的第几天,使用两位的数字表示,不足两位时在前面补 0 | 01 到 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 或者 June | January 到 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 |
B | Swatch 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 |
c | ISO-8601 格式的日期 | 2014-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu,21 Dec 2000 16:01:07 +0200 |
U | 从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 | 和 time() 返回相同的时间戳 |
提示:特殊字符中不能被识别的字符将原样显示,Z 字符在使用 gmdate() 函数时总是返回 0。
下面用一个例子演示 date() 函数以不同的时间格式输出当前时间:<?php // 设定要用的时区 date_default_timezone_set('PRC'); // 输出类似Monday echo date("l"); echo "<br/>"; // 输出类似Monday 15th of August 2005 03:12:46 PM echo date('l dS \of F Y h:i:s A'); echo "<br/>"; // 输出July 1, 2000 is on a Saturday echo "July 1, 2000 is on a " . date("l"); echo "<br/>"; /* 在格式参数中使用常量 */ // 输出类似Wed, 25 Sep 2013 15:28:57 -0700 echo date(DATE_RFC2822); echo "<br/>"; // 输出类似2000-07-01T00:00:00+00:00 echo date(DATE_ATOM); echo "<br/>"; //输出类似2000-07-01 14:00:00 echo date('Y-m-d H:i:s').'<br>'; $time = time(); echo '是一周中的第 '.date('w', $time).' 天<br>'; echo '今年是:'; date('L', $time)? print('闰年'):print('平年'); ?>执行以上程序的输出结果如下:
Friday
Friday 27th of March 2020 01:53:07 PM
July 1, 2000 is on a Friday
Fri, 27 Mar 2020 13:53:07 +0800
2020-03-27T13:53:07+08:00
2020-03-27 13:53:07
是一周中的第 5 天
今年是:闰年
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算