date日期时间函数是php函数部分核心,下面我来列举下它的用法
语法
date(format,timestamp)
其中format参数是必需的部分,规定输出日期字符串的格式,timestamp是可选项,规定整数的 Unix 时间戳。默认是当前的本地时间(time())。我们来重点关注有哪些字符可以使用:
d - 一个月中的第几天(从 01 到 31)
D - 星期几的文本表示(用三个字母表示)
j - 一个月中的第几天,不带前导零(1 到 31)
l('L' 的小写形式)- 星期几的完整的文本表示
N - 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示Sunday[星期日])
S - 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)
w - 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
z - 一年中的第几天(从 0 到 365)
W - 用 ISO-8601 数字格式表示一年中的星期数字(每周从 Monday[星期一]开始)
F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
m - 月份的数字表示(从 01 到 12)
M - 月份的短文本表示(用三个字母表示)
n - 月份的数字表示,不带前导零(1 到 12)
t - 给定月份中包含的天数
L - 是否是闰年(如果是闰年则为 1,否则为 0)
o - ISO-8601 标准下的年份数字
Y - 年份的四位数表示
y - 年份的两位数表示
a - 小写形式表示:am 或 pm
A - 大写形式表示:AM 或 PM
B - Swatch Internet Time(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 中新增的)
e - 时区标识符(例如:UTC、GMT、Atlantic/Azores)
I(i 的大写形式)- 日期是否是在夏令时(如果是夏令时则为 1,否则为 0)
O - 格林威治时间(GMT)的差值,单位是小时(实例:+0100)
P - 格林威治时间(GMT)的差值,单位是 hours:minutes(PHP 5.1.3 中新增的)
T - 时区的简写(实例:EST、MDT)
Z - 以秒为单位的时区偏移量。UTC 以西时区的偏移量为负数(-43200 到 50400)
c - ISO-8601 标准的日期(例如 2013-05-05T16:34:42+00:00)
r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
U - 自 Unix 纪元(January 1 1970 00:00:00 GMT)以来经过的秒数
然后我们来关注下常用的方式
1.年-月-日
echo date("Y-m-d");
2017-11-17
echo date("y-n-j");
17-11-17
echo date('Y-M-j');
2017-Nov-17
echo date('Y-F-jS');
2017-November-17th
时:分:秒
echo date('g:i:s a');
9:14:54 pm
echo date('h:i:s A');
09:15:55 PM
echo date('G:i:s');
21:16:26
3.闰年,星期,天
echo date('L');
今年是否闰年:0
echo date('l');
今天是:Friday
echo date('D');
今天是:Fri
echo date('w');
今天星期:5
echo date('W');
本周是全年中的第 46 周
echo date('t');
本月是 30 天
echo date('z');
今天是今年的第 320 天
在这里再介绍一个函数
microtime函数
如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
echo microtime();
0.84718500 1510925114
然后在这里做一个小测试帮大家熟悉这个函数,顺便复习下循环,我们来检测下三种循环的速度
$array = range(1,10000);
$t0 = microtime(true);
for($i=0;$i
}
$t1 = microtime(true);
$i=0;
while($i
$i++;
}
$t2 = microtime(true);
foreach($array as $key=>$val){
}
$t3 = microtime(true);
echo "for循环耗时:".($t1 - $t0)."
";
echo "while循环耗时:".($t2 - $t1)."
";
echo "foreach循环耗时:".($t3 - $t2)."
";
打印出来结果如下
for循环耗时:0.0014710426330566
while循环耗时:0.00098490715026855
foreach循环耗时:0.018208026885986
所以我们得出while循环的耗时最短