欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php date函数

程序员文章站 2024-01-28 11:47:10
...

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
  1. 时:分:秒
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<count($array);$i++){
    
}
$t1 = microtime(true);
$i=0;
while($i<count($array)){
    $i++;
}
$t2 = microtime(true);
foreach($array as $key=>$val){
    
}
$t3 = microtime(true);
echo "for循环耗时:".($t1 - $t0)."<br>";
echo "while循环耗时:".($t2 - $t1)."<br>";
echo "foreach循环耗时:".($t3 - $t2)."<br>";

打印出来结果如下

for循环耗时:0.0014710426330566
while循环耗时:0.00098490715026855
foreach循环耗时:0.018208026885986

所以我们得出while循环的耗时最短