ROOT
ROOT
文章目录
  1. 系统时区设置
  2. 日期和时间函数
    1. time()函数返回当前时间戳
    2. date()函数返回日期,date(format, timestamp),若无 timestamp 参数则返回当前日期。
    3. getdate(timestamp) 返回一个包含日期时间各个部分的数组,若无参数则返回当前时间日期的数组。
    4. checkdate(month, day, year)检验日期的有效性
    5. strftime(format, timestamp)将时间戳转化为日期和时间,若无 timestamp 参数则以当前的时间戳为准
    6. setlocale(constant,location)函数改变 PHP 本地化默认值,
    7. mktime(hours, minutes, seconds, month, day, year)返回对应的时间戳
    8. microtime(true)可返回微秒级时间戳。

PHP 日期和时间

系统时区设置

date_default_timezone_set()设置时区,例如

<?php
date_default_timezone_set("Asiz/Hong_Kong"); // 香港时区
date_default_timezone_set("RPC"); // 北京时区
?>

日期和时间函数

time()函数返回当前时间戳

echo time(); // 输出当前时间戳

输出:

1426083407

date()函数返回日期,date(format, timestamp),若无 timestamp 参数则返回当前日期。

format: a - “am” 或是 “pm” A - “AM” 或是 “PM” d - 几日,二位数字,若不足二位则前面补零; 如: “01” 至 “31” D - 星期几,三个英文字母; 如: “Fri” F - 月份,英文全名; 如: “January” h - 12 小时制的小时; 如: “01” 至 “12”
H - 24 小时制的小时; 如: “00” 至 “23” g - 12 小时制的小时,不足二位不补零; 如: “1” 至 12" G - 24 小时制的小时,不足二位不补零; 如: “0” 至 “23” i - 分钟; 如: “00” 至 “59” j - 几日,二位数字,若不足二位不补零; 如: “1” 至 “31” l - 星期几,英文全名; 如: “Friday” m - 月份,二位数字,若不足二位则在前面补零; 如: “01” 至 “12” n - 月份,二位数字,若不足二位则不补零; 如: “1” 至 “12” M - 月份,三个英文字母; 如: “Jan” s - 秒; 如: “00” 至 “59” S - 字尾加英文序数,二个英文字母; 如: “th”,“nd” t - 指定月份的天数; 如: “28” 至 “31” U - 总秒数 w - 数字型的星期几,如: “0” (星期日) 至 “6” (星期六) Y - 年,四位数字; 如: “1999” y - 年,二位数字; 如: “99” z - 一年中的第几天; 如: “0” 至 “365”

echo date("Y-m-d H:i:s", 1426083407); // 输出时间戳对应的日期
echo "<br>";
echo date("Y-m-d H:i:s"); // 输出当前日期

输出:

2015-03-11 22:16:47
2015-03-11 22:26:26

getdate(timestamp) 返回一个包含日期时间各个部分的数组,若无参数则返回当前时间日期的数组。

$t = getdate();
echo $t['year'] . " 年 " . $t['mon'] . " 月 " . $t['mday'] . " 日 ";
echo $t['hours'] . " 时 " . $t['minutes'] . " 分 " . $t['seconds'] . " 秒 ";

输出:

2015 年 3 月 11 日 22 时 31 分 58 秒

checkdate(month, day, year)检验日期的有效性

if(checkdate(2, 31, 2015))
	echo "2 月有 31 号 ";
else
	echo "2 月无 31 号 ";

输出:

2 月无 31 号

strftime(format, timestamp)将时间戳转化为日期和时间,若无 timestamp 参数则以当前的时间戳为准

format: %a - 当前区域星期几的简写 %A - 当前区域星期几的全称 %b - 当前区域月份的简写 %B - 当前区域月份的全称 %c - 当前区域首选的日期时间表达 %C - 世纪值(年份除以 100 后取整,范围从 00 到 99) %d - 月份中的第几天,十进制数字(范围从 01 到 31) %D - 和 %m/%d/%y 一样 %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ’ 1’ 到 ‘31’) %g - 和 %G 一样,但是没有世纪 %G - 4 位数的年份,符合 ISO 星期数(参见 %V)。和 %V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。 %h - 和 %b 一样 %H - 24 小时制的十进制小时数(范围从 00 到 23) %I - 12 小时制的十进制小时数(范围从 00 到 12) %j - 年份中的第几天,十进制数(范围从 001 到 366) %m - 十进制月份(范围从 01 到 12) %M - 十进制分钟数 %n - 换行符 %p - 根据给定的时间值为 am' 或 pm’,或者当前区域设置中的相应字符串 %r - 用 a.m. 和 p.m. 符号的时间 %R - 24 小时符号的时间 %S - 十进制秒数 %t - 制表符 %T - 当前时间,和 %H:%M:%S 一样 %u - 星期几的十进制数表达 [1,7],1 表示星期一 Warning 尽管 ISO 9889:1999(当前的 C 标准)明确指出一周从星期一开始,但是 Sun Solaris 的一周似乎从星期天开始并作为 1。 %U - 本年的第几周,从第一周的第一个星期天作为第一天开始 %V - 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。) %W - 本年的第几周数,从第一周的第一个星期一作为第一天开始 %w - 星期中的第几天,星期天为 0 %x - 当前区域首选的时间表示法,不包括时间 %X - 当前区域首选的时间表示法,不包括日期 %y - 没有世纪数的十进制年份(范围从 00 到 99) %Y - 包括世纪数的十进制年份 %Z 或 %z - 时区名或缩写 %% - 文字上的 ‘%’ 字符

echo strftime("%Y-%b-%d %H:%M:%S", 1426083407);
echo "<br>";
echo strftime("%Y-%b-%d %H:%M:%S");

输出:

2015-Mar-11 22:16:47
2015-Mar-11 22:41:22

setlocale(constant,location)函数改变 PHP 本地化默认值,

constant: LC_ALL - 包括下面的所有选项 LC_COLLATE - 排序次序 LC_CTYPE - 字符类别及转换(例如所有字符大写或小写) LC_MESSAGES - 系统消息格式 LC_MONETARY - 货币格式 LC_NUMERIC - 数字格式 LC_TIME - 日期

格式

echo setlocale(LC_TIME, "zh_CN");
echo strftime("%z");

输出:

中国标准时间

mktime(hours, minutes, seconds, month, day, year)返回对应的时间戳

echo mktime(22, 53, 20, 3, 11, 2015);

输出:

1426085600

microtime(true)可返回微秒级时间戳。

echo microtime(true);

输出:

1426085725.4697
支持一下
扫一扫,支持Netcan
  • 微信扫一扫
  • 支付宝扫一扫