PHP date 函数详解

一、函数功能:
  将 unix 数字时间戳转换为指定格式的时间日期字符串。转载请注明出处,爱E族:aiezu.com

二、函数语法:
string date ( string $format [, int $timestamp ] )

三、参数介绍:
1、函数参数:
参数名描述
$format返回时间日期的格式;
$timestamp可选参数,unix时间戳(GMT时间1970-01-01 0:0:0到某个时间的秒数),默认当前时间的时间戳;

2、$format参数中的特殊字符:
下面是$format时间日期格式化参数中的特殊字符,本函数自动会将字符替换为对应的值:
字符描述
cISO-8601规范的日期和时间,如:2014-08-12T20:20:45+00:00(PHP5新加)
rRFC-2822定义的日期和时间,如:Thu, 21 Dec 2020 16:01:07 +0200
年: 
L是否为闰年,闰年则返回 1,否则返回 0
y年份,两位数字,如:98,16
Y年份,四位数字,如:1998,2016
o年份,同Y格式。但是当一周跨越两年时,o会返回此周起始年的年份(ISO-8601规范,PHP5.1新加)
I如果启用夏时制则返回 1,否则返回 0
月: 
m月份的数字表示(从01到12)
n月份的数字表示(从1到12)
F月份英文全拼(从January到December)
M月份英文简拼(从Jan到Dec)
周: 
W当年的第几周,当一周跨越两年时,此周算在上一年中(ISO-8601标准)
N数字表示的星期几,从1(星期一)到7(星期日)(ISO-8601标准,PHP5.1新加)
D星期几的英文简称(从Mon到Sun)
l星期几的英文全称(从Sunday到Saturday)
w星期中的第几天(星期天是 0)
天: 
z一年中的第几天(从0到365)
t本月的总天数,可能的值:28,29,30,31
d一个月中的第几天(从01到31)
j一个月中的第几天(从1到31)
S一个月中的第几天,2个字符表示的英语序数词,如:st,nd,rd,th,可以和配合j使用。
a上午还是下午(am 或 pm)
A上午还是下午(AM 或 PM)
时分秒: 
h小时(从01到12)
H小时(从00到23)
g小时(从1到12)
G小时(从0到23)
i分钟
s秒数
Uunix时间戳,从Unix纪元(GMT时间1970-01-01 00:00:00)起的秒数,和“time()”函数作用相同。
u毫秒,如:654321(PHP 5.2.2 新加)
时区: 
T时区缩写,如:EST, MDT...
e时区标识,如: PRC, UTC, GMT, Asia/Shanghai(PHP 5.1.0 新加)
O与GMT(格林威治时间)的时差,以小时为单位,如:+0200
P与GMT(格林威治时间)的时差,包括小时和分钟,如:+02:00(PHP5.1.3新加)
Z与GMT(格林威治时间)的时差,以秒为单位的时区偏移量
B斯沃琪因特网时间(从000到999)

3、标准时间格式化常量:
下面是几个标准时间格式化常量,PHP5.1.1起可用,可以直接做为$format参数使用。
常量标准示例
DATE_ATOMAtom2005-08-15T15:52:01+00:00
DATE_RFC3339等同于DATE_ATOMPHP 5.1.3起可用
DATE_COOKIEHTTP CookiesMonday, 15-Aug-2005 15:52:01 UTC
DATE_ISO8601ISO-86012005-08-15T15:52:01+0000
DATE_RFC822RFC 822Mon, 15 Aug 05 15:52:01 +0000
DATE_RFC850RFC 850Monday, 15-Aug-05 15:52:01 UTC
DATE_RFC1036RFC 1036Mon, 15 Aug 05 15:52:01 +0000
DATE_RFC1123RFC 1123Mon, 15 Aug 2005 15:52:01 +0000
DATE_RFC2822RFC 2822Mon, 15 Aug 2005 15:52:01 +0000
DATE_RSSRSSMon, 15 Aug 2005 15:52:01 +0000
DATE_W3CWorld Wide Web Consortium2005-08-15T15:52:01+00:00


四、返回值:
返回格式化后的日期时间的字符串;
如果 $timestamp 参数不是一个有效数值,则返回 false 并引发 E_WARNING 级别的错误。

五、用法举例:
1、常见日期时间格式:
<?php
//爱E族: aiezu.com
date_default_timezone_set('PRC');
$date = '2012/12/23 23:24:25';
echo date("Y-m-d H:i:s\n", strtotime($date));
echo date("Y-m-d\n", strtotime($date));
echo date("H:i:s\n", strtotime($date));
echo date("h:i:s\n", strtotime($date));
echo date("c\n", strtotime($date));
echo date("r\n", strtotime($date));
输出:
2012-12-23 23:24:25
2012-12-23
23:24:25
11:24:25
2012-12-23T23:24:25+08:00
Sun, 23 Dec 2012 23:24:25 +0800

2、日期时间格式化常量:
<?php
//爱E族 aiezu.com
date_default_timezone_set('PRC');
echo sprintf("DATE_RFC850格式: %s\n", date(DATE_RFC850));
echo sprintf("   DATE_W3C格式: %s\n", date(DATE_W3C, strtotime('2020-12-12 12:12:12')));
输出:
DATE_RFC850格式: Monday, 07-Nov-16 12:29:42 CST
   DATE_W3C格式: 2020-12-12T12:12:12+08:00

3、转义字符:
可以在特殊字符前面加反斜杠"\",把特殊字符转换为普通字符。
<?php
//爱E族: aiezu.com
date_default_timezone_set('PRC');
echo date("\Y-\m-\d \H:\i:\s -> Y-m-d H:i:s");
输出:
Y-m-d H:i:s -> 2016-11-07 12:33:12

0 个评论

要回复文章请先登录注册