首页 > 编程笔记 > PHP笔记 阅读:23

PHP date():格式化时间和日期

PHP 中,可以使用 date() 函数对获取的时间进行格式化处理,语法如下:

string date ( string $format [, int $timestamp ] )

参数说明:
返回值:返回将时间戳 timestamp 按照给定的 format 格式转换成的字符串。

format 格式化字符串中可以识别的特殊字符如下表所示:
format 字符 说明 返回值例子
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3个字母 Mon 到 Sun
l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
N ISO-8601 格式数字表示的星期中的第几天(PHP 5.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 3 个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
L 是否为闰年 如果是闰年值为 1,否则为 0
o ISO-8601 格式年份数字。这和 Y 的值相同,除了 ISO 的星期数(W)属于前一年或下一年,则用那一年(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() 返回相同的时间戳

下面用一个例子演示 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');
?>
执行以上程序的输出结果如下:

Sunday
Sunday 10th of July 2016 03:46:01 PM
July 1, 2000 is on a Sunday
Sun, 10 Jul 2016 15:46:01 +0800
2016-07-10T15:46:01+08:00
2016-07-10 15:46:01

最后一种格式是最常用的。

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注

所有教程

优秀文章