php关于时间的学习_PHP教程
strftime 根据区域设置格式化本地时间/日期
strptime — 解析由strftime() 生成的日期/时间
setlocale 函数设置地区信息(地域信息)
date_default_timezone_set 如果发觉date函数得出的小时数与实际相差8小时,请加上date_default_timezone_set('Etc/GMT-8');
date — 格式化一个本地时间/日期
gmdate 同date完全一样— 格式化一个GMT/UTC 日期/时间
mktime — 取得一个日期的Unix 时间戳 mktime(0, 0, 0, 12, 30, 1997)
gmmktime和mktime 完全一样
strtotime — 将任何英文文本的日期时间描述解析为Unix 时间戳
time — 返回当前的Unix 时间戳
microtime — 返回当前Unix 时间戳和微秒数
getlastmod — 取得目前使用中网页最后一次更新网页内容的时间
注意:TimeStamp不是函数是指Unix 时间戳即由1970年01月01日0时0分0秒到此刻的秒数
实际操作案例
$strtime = "2000-02-12 16:20:35";
$array = explode("-",$strtime);
$year = $array[0];
$month = $array[1];
var_dump($array);
$array = explode(":",$array[2]);
$minute = $array[1];
$second = $array[2];
var_dump($array);
$array = explode(" ",$array[0]);
$day = $array[0];
$hour = $array[1];
$timestamp = mktime($hour,$minute,$second,$month,$day,$year);
echo "字符串时间:$strtime
";
echo "年:$year
";
echo "月:$month
";
echo "日:$day
";
echo "时:$hour
";
echo "分:$minute
";
echo "秒:$second
";
echo "转换为timestamp:" . $timestamp . "
";
echo "从timestamp转换回来:" . date("y-m-d h:i:s",$timestamp) . "
";
echo "从timestamp转换回来:" . date("y-m-d h:i:s","1288263141") . "
";
header("Content-Type:text/html; charset=utf-8");
echo (strtotime("2010-10-28 10:52:21")). "
"; // MySQL格式的字符串转换成秒数
echo (strtotime("2010-10-01 00:00:00")). "
";
$d = date("Y-m-d H:i:s", time()); // 秒数转换成MySQL格式的timestamp
echo $d. "
";
结果为:
array
0 => string '2000' (length=4)
1 => string '02' (length=2)
2 => string '12 16:20:35' (length=11)
array
0 => string '12 16' (length=5)
1 => string '20' (length=2)
2 => string '35' (length=2)
字符串时间:2000-02-12 16:20:35
年:2000
月:02
日:12
时:16
分:20
秒:35
转换为timestamp:950372435
从timestamp转换回来:00-02-12 04:20:35
从timestamp转换回来:10-10-28 10:52:21
1288263141
1285891200
2011-10-20 14:48:27
格式化时间函数的常见值
函数date ( string format [, int timestamp])可以格式化日期/时间,参数format是格式化字符串,最常用的值如下:
Y:4 位数字完整表示的年份
y:2位数字表示的年份
m:数字表示的月份
M:三个字母缩写表示的月份
d:月份中的第几天
D:星期中的第几天
h:小时,12 小时格式,有前导零
H:小时,24 小时格式,有前导零
i:有前导零的分钟数
I:是否为夏令时
s:秒数
S:每月天数后面的英文后缀,2 个字符
w:星期中的第几天,数字表示
W:ISO-8601 格式年份中的第几周,每周从星期一开始
l:星期几,完整的文本格式
L:是否为闰年
g:12 小时格式,没有前导零
G:24 小时格式,没有前导零
如果发觉date函数得出的小时数与实际相差8小时,请加上date_default_timezone_set('Etc/GMT-8');
getdate(timestamp) 函数可以取得日期/时间信息。
返回一个根据timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳,则认为是当前本地时间。
数组中的单元如下:
键名
说明
返回值例子
"seconds"
秒的数字表示
0 到59
"minutes"
分钟的数字表示
0 到59
"hours"
小时的数字表示
0 到23
"mday"
月份中第几天的数字表示
1 到31
"wday"
星期中第几天的数字表示
0(表示星期天)到6(表示星期六)
"mon"
月份的数字表示
1 到12
"year"
4 位数字表示的完整年份
例如:1999 或2003
"yday"
一年中第几天的数字表示
0 到365
"weekday"
星期几的完整文本表示
Sunday 到Saturday
"month"
月份的完整文本表示
January 到December
0
自从Unix 纪元开始至今的秒数,和time() 的返回值以及用于date() 的值类似。
系统相关,典型值为从-2147483648 到2147483647。
实例:
//显示的格式: 年-月-日 小时:分钟:妙
$showtime=date("Y-m-d H:i:s");
echo '显示时间的格式为:'.$showtime."
";
结果为:
显示时间的格式为:2011-10-20 14:48:27
本文出自 “php技术” 博客