date(format,timestamp) 格式化本地日期和时间。
format | 必需。规定输出日期字符串的格式。可使用下列字符:
同时,也可使用下列预定义常量(从 PHP 5.1.0 开始可用):
|
timestamp | 可选。规定整数的 Unix 时间 |
格式化本地日期和时间,并返回已格式化的日期字符串。
echo date("l") . " ";
echo date("l jS \of F Y h:i:s A");
//Thursday Thursday 7th of September 2017 11:41:34 PM
time() 返回当前时间的 Unix 时间戳。
返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。
strtotime(time,now) 将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time | 必需。规定日期/时间字符串。 |
now | 可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。 |
将任何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。
如果年份表示使用两位数格式,则值 0-69 会映射为 2000-2069,值 70-100 会映射为 1970-2000。
请注意 m/d/y 或 d-m-y 格式的日期,如果分隔符是斜线(/),则使用美洲的 m/d/y 格式。如果分隔符是横杠(-)或者点(.),则使用欧洲的 d-m-y 格式。为了避免潜在的错误,您应该尽可能使用 YYYY-MM-DD 格式或者使用 date_create_from_format() 函数。
strtotime("now");
strtotime("5 September 2016");
strtotime("+5 hours");
strtotime("-1 day");
strtotime("+1 week");
strtotime("+1 week 3 days 7 hours 5 seconds");
strtotime("next Monday");
strtotime("last Sunday");
getdate(timestamp) 返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
timestamp | 可选。规定 Unix 时间戳,整数值。默认为当前本地时间(time())。 |
返回带有与时间戳相关的信息的关联数组:
- [seconds] - 秒
- [minutes] - 分
- [hours] - 小时
- [mday] - 一个月中的第几天
- [wday] - 一周中的某天
- [mon] - 月
- [year] - 年
- [yday] - 一年中的某天
- [weekday] - 星期几的名称
- [month] - 月份的名称
- [0] - 自 Unix 纪元以来经过的秒数
print_r(getdate());
//Array ( [seconds] => 2 [minutes] => 14 [hours] => 0 [mday] => 10 [wday] => 0 [mon] => 9 [year] => 2017 [yday] => 252 [weekday] => Sunday [month] => September [0] => 1504973642 )
gettimeofday(return_float) 返回当前时间。
return_float | 可选。当设置为 TRUE 时,返回浮点数,而不是数组。默认是 FALSE。 |
默认返回关联数组,带有如下数组键名:
- [sec] - Unix 纪元以来的秒
- [usec] - 微秒
- [minuteswest] - 格林尼治以西的分
- [dsttime] - 夏令时修正类型
如果 return_float 参数设置为 true,则返回浮点数。
// 输出 gettimeofday() 返回的数组
print_r(gettimeofday());
echo "<br><br>";
// 输出 gettimeofday() 返回的浮点数
echo gettimeofday(true) . "<br><br>";
// 返回当前时间;然后对输出进行格式化
$mytime=gettimeofday();
echo "$mytime[sec].$mytime[usec]";
//Array ( [sec] => 1504973755 [usec] => 93250 [minuteswest] => -480 [dsttime] => 0 )
//1504973755.0933
//1504973755.93250
date_diff(datetime1,datetime2,absolute) 返回两个日期间的差值。
datetime1 | 必需。规定 DateTime 对象。 |
datetime2 | 必需。规定 DateTime 对象。 |
absolute | 可选。规定布尔值。TRUE 表示间隔/差值必须是正的。默认是 FALSE。 |
$date1=date_create("1984-01-28");
$date2=date_create("1980-10-15");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
//-1200 days
checkdate(month,day,year) 验证格利高里日期。
month | 必需。规定月,从 1 到 12 的数字值。 |
day | 必需。规定日,从 1 到 31 的数字值。 |
year | 必需。规定年,从 1 到 32767 的数字值。 |
用于验证格利高里日期(Gregorian date)。
var_dump(checkdate(12,31,-400));
echo "<br>";
var_dump(checkdate(2,29,2003));
echo "<br>";
var_dump(checkdate(2,29,2004));
// false false true
date_create(time,timezone) 返回新的 DateTime 对象
time | 可选。规定日期/时间字符串。NULL 指示当前的日期/时间。 |
timezone | 可选。规定 time 的时区。默认是当前时区。 |
date_create_from_format(format,time,timezone)返回根据指定格式进行格式化的新的 DateTime 对象。
ormat | 必需。规定要使用的格式。format 参数字符串可以使用下列的字符:
|
time | 必需。规定日期/时间字符串。NULL 指示当前的日期/时间。 |
timezone | 可选。规定 time 的时区。默认为当前时区。 |
date_interval_create_from_date_string() 从字符串的相关部分建立 DateInterval。
$date=date_create("2016-09-25");
echo date_format($date,"Y/m/d");
//2016/09/25
$date=date_create_from_format("j-M-Y","25-Sep-2016");
echo date_format($date,"Y/m/d");
//2016/09/25
date_format(object,format) 返回根据指定格式进行格式化的日期。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
format | 必需。规定日期的格式。 |
date_interval_format(format) 格式化时间间隔。 DateInterval::format() 的别名。
format | 必需。规定格式。format 参数字符串可以使用下列的字符:
注释:每个格式字符串必须以 % 符号作为前缀! |
date_parse(date) 返回带有关于指定日期的详细信息的关联数组。
date | 必需。规定日期(strtotime() 接受的格式)。 |
date_parse_from_format(format,date) 根据指定的格式返回带有关于指定日期的详细信息的关联数组。
format | 必需。规定格式(date_create_from_format() 接受的格式)。 |
date | 必需。指定日期,字符串值。 |
$date=date_create("2016-09-25");
echo date_format($date,"Y/m/d H:i:s");
//2016/09/25 00:00:00
$date1=date_create("1984-01-28");
$date2=date_create("1980-10-15");
$diff=date_diff($date1,$date2);
// %a 输出总天数
echo $diff->format("总天数:%a 。");
//总天数:1200 。
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] => )
print_r(date_parse_from_format("mmddyyyy","25092016"));
echo "<br><br>";
print_r(date_parse_from_format("j.n.Y H:iP","25.9.2016 14:35+02:00"));
//Array ( [year] => [month] => 9 [day] => 16 [hour] => [minute] => [second] => [fraction] => [warning_count] => 0 [warnings] => Array ( ) [error_count] => 1 [errors] => Array ( [8] => Data missing ) [is_localtime] => )
//Array ( [year] => 2016 [month] => 9 [day] => 25 [hour] => 14 [minute] => 35 [second] => 0 [fraction] => [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => 1 [zone_type] => 1 [zone] => -120 [is_dst] => )
date_add(object,interval) 添加日、月、年、时、分和秒到日期。
object | 必需。规定 date_create() 返回的 DateTime 对象。 |
interval | 必需。规定 DateInterval 对象。 |
date_sub(object,interval) 从指定日期减去日、月、年、时、分和秒。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
interval | 必需。规定 DateInterval 对象。 |
date_modify(object,modify) 修改时间戳。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
modify | 必需。规定日期/时间字符串。 |
$date=date_create("1980-10-15");
date_add($date,date_interval_create_from_date_string("100 days"));
echo date_format($date,"Y-m-d");
//1981-01-23
$date=date_create("2016-09-25");
date_modify($date,"+4 days");
echo date_format($date,"Y-m-d");
//2016-09-29
$date=date_create("2016-09-29");
date_sub($date,date_interval_create_from_date_string("4 days"));
echo date_format($date,"Y-m-d");
//2016-09-25
date_date_set(object,year,month,day) 设置新日期。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
year | 必需。规定日期中的年。 |
month | 必需。规定日期中的月。 |
day | 必需。规定日期中的日。 |
date_time_set(object,hour,minute,second) 设置时间。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
hour | 必需。规定时间中的小时。 |
minute | 必需。规定时间中的分。 |
second | 可选。规定时间中的秒。默认为 0。 |
date_timestamp_set(object,unixtimestamp) 设置基于 Unix 时间戳的日期和时间。
object | 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。 |
unixtimestamp | 必需。规定代表日期的 Unix 时间戳。 |
date_timestamp_get(object) 返回 Unix 时间戳。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
date_timezone_set(object,timezone) 设置 DateTime 对象的时区。
object | 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。 |
timezone | 必需。规定代表所需时区的 DateTimeZone 对象。 提示:查看 PHP 中支持的所有时区列表。 |
date_timezone_get(object) 返回给定 DateTime 对象的时区。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
date_isodate_set(object,year,week,day) 设置 ISO 日期。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
year | 必需。规定日期中的年。 |
week | 必需。规定日期中的周。 |
day | 可选。规定离一周中第一天的偏移量。默认为 1。 |
date_offset_get(object) 返回时区偏移。
object | 必需。规定由 date_create() 返回的 DateTime 对象。 |
$date=date_create();
date_date_set($date,2020,10,15);
echo date_format($date,"Y/m/d");
//2020/10/15
$date=date_create();
date_isodate_set($date,2016,5);
echo date_format($date,"Y-m-d");
//2016-02-01
$winter=date_create("2016-10-15",timezone_open("America/New_York"));
$summer=date_create("2016-01-28",timezone_open("America/New_York"));
echo date_offset_get($winter) . " 秒。<br />";
echo date_offset_get($summer) . " 秒。";
//-14400 秒。-18000 秒。
date_default_timezone_get() 返回由所有的 Date/Time 函数使用的默认时区。
date_default_timezone_set(timezone) 设置由所有的 Date/Time 函数使用的默认时区。
timezone | 必需。规定要使用的时区,比如 "UTC" 或 "Europe/Paris"。 |
date_default_timezone_set("Asia/Shanghai");
echo date_default_timezone_get();
//Asia/Shanghai
echo date_default_timezone_get();
//Asia/Shanghai
date_get_last_errors() 返回日期字符串中的警告/错误。
crate_create("aecubdjpoi%&&/");
print_r(date_get_last_errors());
//Array ( [warning_count] => 1 [warnings] => Array ( [6] => Double timezone specification ) [error_count] => 5 [errors] => Array ( [0] => The timezone could not be found in the database [10] => Unexpected character [11] => Unexpected character [12] => Unexpected character [13] => Unexpected character ) )
date_sun_info(timestamp,latitude,longitude) 返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
timestamp | 必需。规定时间戳。 |
latitude | 必需。必需。规定纬度,以度数计。 |
longitude | 必需。必需。规定经度,以度数计。 |
date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset) 返回指定日期与位置的日出时间。
date_sunset(timestamp,format,latitude,longitude,zenith,gmtoffset) 返回指定日期与位置的日落时间。
timestamp | 必需。规定要计算日出时间的日期时间戳。 |
format | 可选。规定如何返回结果:
|
latitude | 可选。规定地点的纬度。默认是指北纬。如需指定南纬,请传递负值。 |
longitude | 可选。规定地点的经度。默认是指东经。如需指定西经,请传递负值。 |
zenith | 可选。默认为 date.sunrise_zenith。 |
gmtoffset | 可选。规定 GMT 与本地时间的差值,以小时计。 |
gmdate(format,timestamp) 格式化 GMT/UTC 日期和时间。
format | 必需。规定输出日期字符串的格式。可使用下列字符:
同时,也可使用下列预定义常量(从 PHP 5.1.0 开始可用):
|
gmmktime(hour,minute,second,month,day,year,is_dst) 返回 GMT 日期的 UNIX 时间戳。
hour | 可选。规定小时。 |
minute | 可选。规定分。 |
second | 可选。规定秒。 |
month | 可选。规定月。 |
day | 可选。规定天。 |
year | 可选。规定年。 |
is_dst | 可选。参数总是代表 GMT 日期,所以 is_dst 不影响结果。 注释:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。 |
gmstrftime(format,timestamp) 根据区域设置对 GMT/UTC 日期和时间进行格式化。
format | 必需。规定如何返回结果:%a - 星期几名称的简写
|
idate(format,timestamp) 将本地时间/日期格式化为整数。
format | 必需。规定如何返回结果:
|
localtime(timestamp,is_assoc) 返回本地时间。
timestamp | 可选。规定 Unix 时间戳。如果未规定 timestamp,则默认为当前的本地时间 time()。 |
is_assoc | 可选。规定返回关联数组还是索引数组。如果为 FALSE,则返回索引数组。如果为 TRUE,则返回关联数组。默认为 FALSE。 关联数组的键名如下:
|
microtime(get_as_float) 返回当前时间的微秒数
get_as_float | 可选。当设置为 TRUE 时,规定函数应该返回浮点数,否则返回字符串。默认为 FALSE。 |
mktime(hour,minute,second,month,day,year,is_dst) 返回日期的 Unix 时间戳。
hour | 可选。规定小时。 |
minute | 可选。规定分。 |
second | 可选。规定秒。 |
month | 可选。规定月。 |
day | 可选。规定天。 |
is_dst | 可选。如果时间在夏令时 (DST) 期间,则设置为 1,否则设置为 0,若未知则设置为 -1(默认)。 如果未知,PHP 会自己进行查找(可能产生意外的结果)。 注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。 |
strftime(format,timestamp) 域设置对本地时间/日期进行格式化。
strptime(date,format) 解析由 strftime() 生成的时间/日期。
date | 必需。要解析的字符串(例如:由 strftime() 返回的)。 |
timestamp | 可选。规定代表需要格式化的日期/时间的 Unix 时间戳。默认为当前时间(time())。 |
format | 必需。规定如何返回结果:
|
timezone_abbreviations_list() 返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list() 返回带有所有时区标识符的索引数组。
timezone_location_get() 返回指定时区的位置信息。
timezone_name_from_abbr() 根据时区缩略语返回时区名称。
timezone_name_get() 返回时区的名称。
timezone_offset_get() 返回相对于 GMT 的时区偏移。
timezone_transitions_get() 返回时区的所有转换。
timezone_version_get() 返回时区数据库的版本。