PHP语言中的函数有许多种,各种应用方式不同,实现的功能也不尽相同。我们在本文种为大家总结了PHP时间戳函数,希望能作为参考学习对象。
一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下:
echo strtotime(”2009-1-22″) 结果:1232553600
说明:返回2009年1月22日0点0分0秒时间戳
二,PHP时间戳函数获取英文文本日期时间 示例如下:
便于比较,使用date将当时间戳与指定时间戳转换成系统时间
(1)打印明天此时的时间戳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-23 09:40:25
(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()格式化日期时间获取指定的时间戳,实现所需要的日期时间。
示例:
<?php
/***************************************************************************
*
* Copyright (c) 2011 Baidu.com, Inc. All Rights Reserved
* $Id$
*
**************************************************************************/
//时间戳转日期
$date_time_array
=
getdate
(1297845628);
//1311177600 1316865566
$hours
=
$date_time_array
[
"hours"
];
$minutes
=
$date_time_array
[
"minutes"
];
$seconds
=
$date_time_array
[
"seconds"
];
$month
=
$date_time_array
[
"mon"
];
$day
=
$date_time_array
[
"mday"
];
$year
=
$date_time_array
[
"year"
];
echo
"year:$year\nmonth:$month\nday:$day\nhour:$hours\nminutes:$minutes\nseconds:$seconds\n"
;
//正常日期转时间戳
echo
mktime
(0, 0, 0, 9, 18, 2011) .
"\n"
;
echo
mktime
(0, 0, 0, 9, 25, 2011) .
"\n"
;
/*
time();
是获得当前时间,但获得的是一整型
*/
//可以对此进行格式化
echo
"time()显示年月日时分秒:"
.
date
(
"Y-m-d H:i:s"
, time()) .
"\n"
;
//这样连时,分秒一起显示
echo
"time()只显示年月日:"
.
date
(
"Y-m-d "
, time()) .
"\n"
;
//只年示年月日
echo
"时间戳格式化:"
.
date
(
"Y-m-d H:i:s"
, 1297845628) .
"\n"
;
//直接使用时间戳
/* vim: set ts=4 sw=4 sts=4 tw=100 noet: */
?>
|