PHP提供了很多的处理日期和时间的函数,包括time()、date()、mktime()、checkdate()、microtime()、strtotime()等等,详细的日期时间函数列表可以查看PHP的手册。
1. time()
首先来说time()函数,它返回当前的UNIX时间戳。什么是UNIX时间?这个...说实话,有些东西明白还真的说不上来。所谓的UNIX时间戳是从Unix 纪元 (格林威治时间1970年1月1日00:00:00)到当前时间的秒数。 time()函数的实例很简单,直接调用该函数就可以,
示例:
<?php echo time(); // return "1264668961" ?>
2. date()
毕竟UNIX时间戳对于我们人类来说可读性很差,所以要想使当前时间变得人们可读就要用到date()函数。date函数的原型如下:
date() 函数的第一个参数规定了如何格式化日期/时间。它使用字母来表示日期和时间的格式。这里列出了一些可用的字母:
- d - 月中的天 (01-31)
- m - 当前月,以数字计 (01-12)
- Y - 当前的年(四位数)
示例:
<?php
echo date("Y/m/d");
echo "<br />";
echo date("Y.m.d");
echo "<br />";
echo date("Y-m-d");
?>
输出:
2013/11/21 2013.11.21 2013-11-21
3.mktime()
mktime() 函数返回一个日期的 Unix 时间戳。
参数说明:
hour (可选) 规定小时。
minute (可选) 规定分钟。
second (可选) 规定秒。
month (可选) 规定用数字表示的月。
day (可选) 规定天。
year (可选) 规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst (可选) 如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。
参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。
自 5.1.0 器,该函数自动校正越界的输入,而之前的版本会返回false
mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入
示例:
<?php
echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));
echo(date("M-d-Y",mktime(0,0,0,14,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,99)));
?>
输出:
Jan-05-2002
Feb-01-2002
Jan-01-2001
Jan-01-1999
4. checkdate()
checkdate() 函数验证一个格里高里日期。
如果指定的值合法,则该函数返回 true,否则返回 false。
日期在下列情况下为合法:
- month 介于且包括 1 - 12
- Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。
- year 介于且包括 1 到 32767
语法
checkdate(month,day,year)
参数
参数 | 描述 |
---|---|
month | 必需。规定月。 |
day | 必需。规定日。 |
year | 必需。规定年。 |
示例 :
<?php
var_dump(checkdate(12,31,2000));
var_dump(checkdate(2,29,2003));
var_dump(checkdate(2,29,2004));
?>
输出:
bool(true)
bool(false)
bool(true)