日期时间函数库简介

日期时间函数库是PHP内置函数库,可以通过日期时间函数库获得服务器的日期时间相关内容。

设置时区的方法
中国常用时区PRC(中华人民共和国)、Asia/Shanghai(上海)、Asia/Chongqing’(重庆);

修改php.ini的设置
方法1
修改PHP配置文件date.timezone设置时区,在php.ini中设置时区date.timezone = PRC

修改程序文件
方法2
date_default_timezone_set(); //设置当前时区
date_default_timezone_get(); //得到当前时区

实例

date_default_timezone_set('PRC');
echo date_default_timezone_get();

方法3
ini_set() //运行时设置PHP的配置选项
ini_get() //获得配置选项的值

实例

ini_set('date.timezone','Asia/Shanghai');
echo ini_get('date.timezone');

php时间函数及用法

checkdate函数

checkdate(int $month, int $day, int $year) 
//验证日期的正确性,如果给出的日期有效则返回 TRUE,否则返回 FALSE。
$month 的值是从 1 到 12
$day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了
$year 的值是从 1 到 32767

实例

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

date()函数

date() //将服务器的时间格式化,$timestamp 是可选的,默认值为 time()
date(string $format, int $timestamp)
$format&说明&返回值例子
日
d &月份中的第几天,有前导零的 2 位数字 &01 到 31
D &星期中的第几天,文本表示,3 个字母 &Mon 到 Sun
z &年份中的第几天 &0 到 365
t &指定的月份有几天 &28 到 31
j &月份中的第几天,没有前导零 &1 到 31

星期
m &数字表示的月份,有前导零	&01 到 12
M &三个字母缩写表示的月份 &Jan 到 Dec
n &数字表示的月份,没有前导零 &1 到 12
W &年份中的第几周 &例如:42(当年的第 42 周)
w &星期中的第几天,数字表示 &0(表示星期天)到 6(表示星期六)

年
Y &4 位数字完整表示的年份 &例如:1999 或 2003
y &2 位数字表示的年份 &例如:99 或 03
L &是否为闰年 &如果是闰年为 1,否则为 0

时间
a &小写的上午和下午值 &am 或 pm
A &大写的上午和下午值 &AM 或 PM
g &小时,12 小时格式,没有前导零 &1 到 12
G &小时,24 小时格式,没有前导零 &0 到 23
h &小时,12 小时格式,有前导零 &01 到 12
H &小时,24 小时格式,有前导零 &00 到 23
i &有前导零的分钟数 &00 到 59>
s &秒数,有前导零 &00 到 59>

实例

date('y-m-d')  //16-08-02
date('H:i:s a') //2:09:09 am
date('w') //返回一周内的第几天 值是 0-6

time()函数

time() //返回当前的 Unix 时间戳
时间戳就是从格林威治时间1970年1月1日00:00:00到当前时间所经历的秒数

实例

<?php
echo date('y-m-d H:i:s',time());
echo '一天后的这个时间为:'.date('y-m-d H:i:s',time()+24*60*60);
echo '一周后的这个时间为:'.date('y-m-d H:i:s',time()+7*24*60*60);
echo '14天之前的这个时间为:'.date('y-m-d H:i:s',time()-14*24*60*60);
?>

mktime()函数

mktime([int $hour = date("H"), int $minute = date("i"), int $second = date("s"), int $month = date("n"), 
int $day = date("j"), int $year = date("Y"))
//将指定日期的转换成时间戳,里面的参数可依次省略

实例

//2018-09-01 00:00:00
<?php echo mktime(0,0,0,09,01,2018 ?>
//计算两个日期的时间差
$bir = mktime(0,0,0,08,02,1992);
$now = time();
$age = floor(($now-$bir)/(24*3600*365));

floor() 函数向下舍入为最接近的整数
echo(floor(5.1);
echo(floor(-5.1);
输出 5 -6

strtotime()函数

strtotime(string $time, int $now = time()) //将英文文本的日期时间描述解析为 Unix 时间戳

实例

echo strtotime('now');
echo strtotime('10 September 2000');
echo strtotime('+1 day');
echo strtotime('+1 week');
echo strtotime('+1 week 2 days 4 hours 2 seconds');
echo strtotime('next Thursday');
echo strtotime('last Monday');

getdate()函数

getdate(int $timestamp = time()) //取得日期/时间信息
返回一个根据 timestamp 得出的包含有日期信息的关联数组 array

gettimeofday (bool $return_float = false) //取得当前时间
默认返回一个 array。如果 return_float 设置了则会返回一个 float

常用日期时间插件
jQuery Date and Time picker
flipCountDown