PHP时间格式化参数表笔记

date_create_from_format() 函数返回一个根据指定格式进行格式化的新的 DateTime 对象。通常需要配合date_format()函数使用

语法:

date_create_from_format(format,time,timezone);

date_format(object,format);

object  由 date_create() 返回的 DateTime 对象。

参数描述
format 必需。规定要使用的格式。format 参数字符串可以使用下列的字符:
  • d - 一个月中的第几天,带前导零
  • j - 一个月中的第几天,不带前导零
  • D - 一周中的某天(Mon - Sun)
  • I - 一周中的某天(Monday - Sunday)
  • S - 一个月中的第几天的英语后缀(st, nd, rd, th)
  • F - 月份名称(January - December)
  • M - 月份名称(Jan - Dec)
  • m - 月份(01 - 12)
  • n - 月份(1 - 12)
  • Y - 年份(例如 2013)
  • y - 年份(例如 13)
  • a 和 A - am 或 pm
  • g - 12 小时制,不带前导零
  • h - 12 小时制,带前导零
  • G - 24 小时制,不带前导零
  • H - 24 小时制,带前导零
  • i - 分,带前导零
  • s - 秒,带前导零
  • u - 微秒(多达六个数字)
  • e、O、P 和 T - 时区标识符
  • U - 自 Unix 纪元以来经过的秒数
  • (空格)
  • # - 下列分隔符之一:;、:、/、.、,、-、(、)
  • ? - 一个随机字节
  • * - 随机字节直到下一个分隔/数字
  • ! - 重置所有字段到 Unix 纪元
  • | - 如果所有字段都还没被解析,则重置所有字段到 Unix 纪元
  • + - 如果存在,字符串中的尾随数据将导致警告,不是错误
time 必需。规定一个日期/时间字符串。NULL 表示当前的日期/时间。
timezone 可选。规定 time 的时区。默认为当前时区。

timezone:查看 PHP 中支持的所有时区列表

常用时间函数

计算2个时间差(天)

date_diff(datetime1,datetime2,absolute);

absolute 可选。规定一个布尔值。TRUE 表示间隔/差值必须是正的。默认是 FALSE。

<?php
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>

date_parse() 函数返回一个包含指定日的详细信息的关联数组。格式由 strtotime() 接受

如:

<?php
print_r(date_parse("2013-05-01 12:30:45.5"));
?>

Array ( [year] => 2013 [month] => 5 [day] => 1 [hour] => 12 [minute] => 30 [second] => 45 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => )

 

microtime() 函数返回当前 Unix 时间戳的微秒数。

microtime(get_as_float);get_as_float 可选,当设置为 TRUE 时,规定函数应该返回一个浮点数,否则返回一个字符串。默认为 FALSE。

 

解析由 strftime() 生成的时间/日期:

<?php
$format="%d/%m/%Y %H:%M:%S";
$strf=strftime($format);
echo("$strf");
print_r(strptime($strf,$format));
?>
注意:该函数不能在 Windows 平台下实现!
date 必需。要解析的字符串(例如:由 strftime() 返回的)。
format 必须。规定日期中要使用的格式:
  • %a - 星期几名称的简写
  • %A - 星期几名称的全称
  • %b - 月份名称的简写
  • %B - 月份名称的全称
  • %c - 首选的日期和时间表示法
  • %C - 表示世纪的数字(年份除以 100,范围从 00 到 99)
  • %d - 一个月中的第几天(01 到 31)
  • %D - 时间格式,与 %m/%d/%y 表示法相同
  • %e - 一个月中的第几天(1 到 31)
  • %g - 与 %G 表示法类似,但不带世纪
  • %G - 与 ISO 星期数对应的 4 位数年份(见 %V)
  • %h - 与 %b 表示法相同
  • %H - 小时,使用 24 小时制(00 到 23)
  • %I - 小时,使用 12 小时制(01 到 12)
  • %j - 一年中的第几天(001 到 366)
  • %m - 月份(01 到 12)
  • %M - 分
  • %n - 换行符
  • %p - 与给定的时间值相对应的 am 或 pm
  • %r - a.m. 和 p.m. 的时间标记法
  • %R - 24 小时制的时间标记法
  • %S - 秒
  • %t - tab 制表符
  • %T - 当前时间,与 %H:%M:%S 表示法相同
  • %u - 星期几的数字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系统中,Sunday[星期日] = 1
  • %U - 当年包含的周数,从第一个星期日开始,作为第一周的第一天
  • %V - 当年包含的 ISO 8601 格式下的周数(01 到 53),week 1 表示当年的第一周,至少要有四天,且以星期一作为周的第一天
  • %W - 当年包含的周数,从第一个星期一开始,作为第一周的第一天
  • %w - 以十进制数形式表示一周中的某天,Sunday[星期日] = 0
  • %x - 首选的日期表示法,不带时间
  • %X - 首选的时间表示法,不带日期
  • %y - 不包含表示世纪的数字的年份表示(范围从 00 到 99)
  • %Y - 包含表示世纪的数字的年份表示
  • %Z 或 %z - 时区名称或简写
  • %% - 输出一个 % 字符
返回值: 如果成功该函数返回一个带有解析日期的数组。如果失败则返回 FALSE。

返回数组的键名含义如下所示:

  • [tm_sec] - 当前分钟内的秒数(0-61)
  • [tm_min] - 当前小时内的分钟数(0-59)
  • [tm_hour] - 午夜起的小时数(0-23)
  • [tm_mday] - 月份中的第几天(1-31)
  • [tm_mon] - 自一月起过了几个月(0-11)
  • [tm_year] - 自 1900 年起过了几年
  • [tm_wday] - 自星期天起过了几天(0-6)
  • [tm_yday] - 本年自 1 月 1 日起过了多少天(0-365)
  • [unparsed] - 日期中未能通过指定的 format 识别的部分

 

strtotime() 函数将任何字符串的日期时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)

语法:

int strtotime ( string $time [, int $now = time() ] )
示例:
<?php
// 设置时区
date_default_timezone_set("PRC"); $time = strtotime("2018-01-18 08:08:08");
// 将指定日期转成时间戳
// 打印当前时间 PHP_EOL 换行符,兼容不同系统
echo $time, PHP_EOL;
// 更多实例
echo strtotime("now"), PHP_EOL;
echo strtotime("now"), PHP_EOL;
echo strtotime("10 September 2000"), PHP_EOL;
echo strtotime("+1 day"), PHP_EOL; echo strtotime("+1 week"), PHP_EOL;
echo strtotime("+1 week 2 days 4 hours 2 seconds"), PHP_EOL; echo strtotime("next Thursday"), PHP_EOL;
echo strtotime("last Monday"), PHP_EOL;
?>

Runtime 配置

Date/Time 函数的行为受到 php.ini 中设置的影响:

名称描述默认PHP 版本
date.timezone 规定默认时区(所有的 Date/Time 函数使用该选项) "" PHP 5.1
date.default_latitude 规定默认纬度(date_sunrise() 和 date_sunset() 使用该选项) "31.7667" PHP 5.0
date.default_longitude 规定默认经度(date_sunrise() 和 date_sunset() 使用该选项) "35.2333" PHP 5.0
date.sunrise_zenith 规定默认日出天顶(date_sunrise() 和 date_sunset() 使用该选项) "90.83" PHP 5.0
date.sunset_zenith 规定默认日落天顶(date_sunrise() 和 date_sunset() 使用该选项) "90.83" PHP 5.0

 


PHP 5 Date/Time 函数

函数描述
checkdate() 验证格利高里日期。
date_add() 添加日、月、年、时、分和秒到一个日期。
date_create_from_format() 返回一个根据指定格式进行格式化的新的 DateTime 对象。
date_create() 返回一个新的 DateTime 对象。
date_date_set() 设置一个新的日期。
date_default_timezone_get() 返回默认时区,被所有的 Date/Time 函数使用。
date_default_timezone_set() 设置默认时区,被所有的 Date/Time 函数使用。
date_diff() 返回两个日期间的差值。
date_format() 返回根据指定格式进行格式化的日期。
date_get_last_errors() 返回日期字符串中的警告/错误。
date_interval_create_from_date_string() 从字符串的相关部分建立一个 DateInterval。
date_interval_format() 格式化时间间隔。
date_isodate_set() 设置 ISO 日期。
date_modify() 修改时间戳。
date_offset_get() 返回时区偏移。
date_parse_from_format() 根据指定的格式返回一个带有指定日期的详细信息的关联数组。
date_parse() 返回一个带有指定日期的详细信息的关联数组。
date_sub() 从指定日期减去日、月、年、时、分和秒。
date_sun_info() 返回一个包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
date_sunrise() 返回指定日期与地点的日出时间。
date_sunset() 返回指定日期与地点的日落时间。
date_time_set() 设置时间。
date_timestamp_get() 返回 Unix 时间戳。
date_timestamp_set() 设置基于 Unix 时间戳的日期和时间。
date_timezone_get() 返回给定 DateTime 对象的时区。
date_timezone_set() 设置 DateTime 对象的时区。
date() 格式化本地日期和时间。
getdate() 返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gettimeofday() 返回当前时间。
gmdate() 格式化 GMT/UTC 日期和时间。
gmmktime() 返回 GMT 日期的 UNIX 时间戳。
gmstrftime() 根据区域设置格式化 GMT/UTC 日期和时间。
idate() 格式化本地时间/日期为整数。
localtime() 返回本地时间。
microtime() 返回当前 Unix 时间戳的微秒数。
mktime() 返回一个日期的 Unix 时间戳。
strftime() 根据区域设置格式化本地时间/日期。
strptime() 解析由 strftime() 生成的时间/日期。
strtotime() 将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time() 返回当前时间的 Unix 时间戳。
timezone_abbreviations_list() 返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list() 返回带有所有时区标识符的数值数组。
timezone_location_get() 返回指定时区的位置信息。
timezone_name_from_ abbr() 根据时区缩略语返回时区名称。
timezone_name_get() 返回时区的名称。
timezone_offset_get() 返回相对于 GMT 的时区偏移。
timezone_open() 创建一个新的 DateTimeZone 对象。
timezone_transitions_get() 返回时区的所有转换。
timezone_version_get() 返回时区数据库的版本。

 


PHP 5 预定义的 Date/Time 常量

 

常量描述
DATE_ATOM Atom (例如:2005-08-15T16:13:03+0000)
DATE_COOKIE HTTP Cookies (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601 ISO-8601 (例如:2005-08-14T16:13:03+0000)
DATE_RFC822 RFC 822 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850 RFC 850 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036 RFC 1036 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123 RFC 1123 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822 RFC 2822 (例如:Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSS RSS (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C 万维网联盟 (例如:2005-08-14T16:13:03+0000)
posted @ 2018-08-06 11:47  纭卿殇  Views(1405)  Comments(0Edit  收藏  举报