PHP语言中的函数有许多种,各类应用方式不一样,实现的功能也不尽相同。咱们在本文种为你们总结了PHP时间戳函数,但愿能做为参考学习对象。 php
一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例以下: html
echo strtotime(”2009-1-22″) 结果:1232553600 vim
说明:返回2009年1月22日0点0分0秒时间戳 函数
二,PHP时间戳函数获取英文文本日期时间 示例以下: 学习
便于比较,使用date将当时间戳与指定时间戳转换成系统时间 spa
(1)打印明天此时的时间戳strtotime(”+1 day”) unix
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25 code
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25 htm
(2)打印昨天此时的时间戳strtotime(”-1 day”) 对象
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25
(3)打印下个星期此时的时间戳strtotime(”+1 week”)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25
(4)打印上个星期此时的时间戳strtotime(”-1 week”)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25
(5)打印指定下星期几的时间戳strtotime(”next Thursday”)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00
(6)打印指定上星期几的时间戳strtotime(”last Thursday”)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00
以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,咱们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所须要的日期时间。
示例:
?>
mktime() 函数返回一个日期的 Unix 时间戳。
参数老是表示 GMT 日期,所以 is_dst 对结果没有影响。
参数能够从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
mktime(hour,minute,second,month,day,year,is_dst)
参数 | 描述 |
---|---|
hour | 可选。规定小时。 |
minute | 可选。规定分钟。 |
second | 可选。规定秒。 |
month | 可选。规定用数字表示的月。 |
day | 可选。规定天。 |
year | 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。 |
is_dst | 可选。若是时间在日光节约时间(DST)期间,则设置为1,不然设置为0,若未知,则设置为-1。 自 5.1.0 起,is_dst 参数被废弃。所以应该使用新的时区处理特性。 |
注释:在 PHP 5.1 以前,若是该函数的参数非法,则会返回 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