Maison  >  Article  >  php教程  >  php关于时间的学习

php关于时间的学习

WBOY
WBOYoriginal
2016-06-13 10:45:081085parcourir

 

关于时间的函数:

 

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技术” 博客

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn