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
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 函数
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) |
|
请发表评论