2.8.1 获取日期和时间
在PHP 中,要获取当前的日期和时间,非常简单,只需要使用Date()函数。
Date()函数的声明如下所示:
string date( string format [, int timestamp] )
返回按照指定格式显示的时间字符串。其中参数format 为显示格式,而参数为timestamp
时间戳。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值
为time()。
提示 要将字符串表达的时间转换成时间戳,应该使用strtotime()。
其中format 的选项很多,具体设置如表2-9 所示。
表2-9 format参数的设置
参 数 值 说 明应 用
日期格式设置
d 月份中的第几天,有前导零的2 位数字 01到31
D 星期中的第几天,文本表示,3 个字母 Mon 到Sun
j 月份中的第几天,没有前导零 1到31
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到366
星期
W ISO-8601 格式年份中的第几周,每周从星期一开始
(PHP 4.1.0 新加的) 例如:42(当年的第42 周)
月
F 月份,完整的文本格式,例如January 或者March 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 新加)
Examples: 1999 or 2003
Y 4 位数字完整表示的年份 例如:1999 或2003
参数 值 说 明应 用
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>
时区
e 时区标识(PHP 5.1.0 新加) 例如:UTC,GMT,Atlantic/Azores
I 是否为夏令时 如果是夏令时为1,否则为0
O 与格林威治时间相差的小时数 例如:+0200
T 本机所在的时区 例如:EST,MDT
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,
UTC 东边的时区偏移量总是正的。
−43200 到43200
完整的日期/时间
c ISO 8601 格式的日期(PHP 5 新加) 2004-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()
实例2-70 date 函数的应用
本实例将演示如何通过date 函数来输入各种形式的日期,如代码2-74 所示。
【代码2-74】 date.php
<?php
// 输出类似:Monday
echo date("l") . "<br>";
// 输出类似:Monday 15th of August 2005 03:12:46 PM
echo date('l dS \of F Y h:i:s A'). "<br>";
echo date("F j, Y, g:i a"). "<br>";
echo date("m.d.y"). "<br>";
echo date("j, n, Y"). "<br>";
echo date("Ymd"). "<br>";
echo date('h-i-s, j-m-y, it is w Day z '). "<br>";
echo date('\i\t \i\s \t\h\e jS \d\a\y.'). "<br>";
echo date("D M j G:i:s T Y"). "<br>";
echo date('H:m:s \m \i\s\ \m\o\n\t\h'). "<br>";
echo date("H:i:s"). "<br>";
?>
输出结果如图2-63 所示。
Wednesday
Wednesday 04th of May 2016 10:35:38 AM
May 4, 2016, 10:35 am
05.04.16
4, 5, 2016
20160504
10-35-38, 4-05-16, 3531 3538 3 Wedam16 124
it is the 4th day.
Wed May 4 10:35:38 UTC 2016
10:05:38 m is month
10:35:38
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> time.php </title>
<meta charset="UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<?php
$t=time();
var_dump($t);
$format='dD';
$dt= date( $format ,$t);
var_dump($dt);
$format='jD';
$dt= date( $format ,$t);
var_dump($dt);
$format='lDN';
$dt= date( $format ,$t);
var_dump($dt);
$format='jS';
$dt= date( $format ,$t);
var_dump($dt);
$format='wDN';
$dt= date( $format ,$t);
var_dump($dt);
?>
</body>
</html>
int 1462358004
string '04Wed' (length=5)
string '4Wed' (length=4)
string 'WednesdayWed3' (length=13)
string '4th' (length=3)
string '3Wed3' (length=5)