PHP时间和日期函数详解

php函数的多样化和功能相近真是一大特点,同一个应用可以用多种函数实现,这恐怕也是开源的一个弊端了;通过对PHP时间函数的系统学习,充分理解了时间戳和时区的概念(这个真的很重要),有需要的小伙伴可以参考下。

PHP中所有函数都是UNIX纪元的,即从1970年1月1日开始的。

日期是从这个时候开始的秒数。

当一个函数调用从这时候计的秒数时,就把它当作(timestamp)时间戳。

本地时间函数

1. string date(string format,inieger timestamp)

该函数返回一个表示时间的字符串,是由string format 控制的。

如:

  1. <?
  2. print(date("Y年 m月d日");//输出当前,年月日.
  3. print(date("Y年 m月d日",60*60*24*365*10);//输出1980年1月1日.
  4. ?>

也许你会问,怎麽没有timestamp呢?若timestamp为空时,或不写时,表示使用当前时间一刻timestamp.

表示年份的控制符: Y---四位的年份 y---两位的年份

表示月份的控制符: m---从1-12的月份 F---英文月份名 M---简写的月份名

表示日号的控制符: d---前面有0的月份中日期 j--前面没有0的日号

表示星期的控制符: l--英文星期 D--简写的星期

表示小时的控制符: h--从1到12小时 H---从0到23的小时

表示上下午的控制符 a ---am或pm A---AM或PM

表示分钟的控制符: i---取值00-59

表示一年中第多少天: z--一年中的第多少天

2. array getdate(integer timestamp)

该函数返回一个矩阵.

如:

  1. <?
  2. $current_date=getdate();
  3. print($current_date("hours"));
  4. print($current_date("minutes");
  5. print($current_date("seconds");
  6. ?>

说明:

元素 描述

hours 24小时格式的小时

mday 月份中日期

minutes 分钟

mon 数字形式的月份

month 月份全称

seconds 秒数

wday 从0到6的数字形式的星期几

weekday 星期几的名称

year 年份

0 时间戳即从1970年1月1日到现在的秒数

yday 一年中数字形式的日期

3. boolean checkdate(integer month,integer day,integer year)

该函数检查日期是否合法.如:

  1. <?
  2. if(checkdate(2,29,1980))
  3. print("日期合法!n");
  4. ?>

4. integer time()

该函数获得当前时间戳.如:

  1. <?
  2. print(time());//输出一大串整数
  3. ?>

5. integer mktime(integer hour,integer minutes,integer seconds,integer month, integer day,integer year)

该函数返回给出日期的时间戳,即从1970年1月1日到现在的秒数.

如某参数超出范围,该函数也可以解释它,如13月即为第二年的一月.

如:

  1. <?
  2. $currenthour=date("H");
  3. print("50个小时后为:");
  4. print(date("h:i A l F dS,Y",mktime($currenthour+50)));
  5. print("<br>n");
  6. ?>

6. string microtime()

该函数返回一个字符串,由当前时间的毫秒数+空格+从1970年开始的秒数

  1. <?
  2. print("start:microtime()<br>n");
  3. for($index=0;$index<1000;$index++)
  4. print("good!");
  5. print("stop:microtime()<br>n");
  6. ?>

还有,各林威治标准时间函数