Heim  >  Artikel  >  php教程  >  php关于时间的学习

php关于时间的学习

WBOY
WBOYOriginal
2016-06-13 10:45:081084Durchsuche

 

关于时间的函数:

 

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn