mktime
(PHP 3, PHP 4, PHP 5)
mktime -- 取得一个日期的 Unix 时间戳
说明
int
mktime
( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从
Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。
参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
参数
-
hour
-
小时数。
-
minute
-
分钟数。
-
second
-
秒数(一分钟之内)。
-
month
-
月份数。
-
day
-
天数。
-
year
-
年份数,可以是两位或四位数字,0-69 对应于 2000-2069,70-100
对应于 1970-2000。在如今系统中普遍把 time_t 作为一个 32
位有符号整数的情况下,
year
的合法范围是 1901 到 2038 之间,不过此限制自
PHP 5.1.0 起已被克服了。
-
is_dst
-
本参数可以设为 1,表示正处于夏时制时间(DST),0
表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。如果未知,PHP
会尝试自己搞明白。这可能产生不可预知(但并非不正确)的结果。如果
PHP 运行的系统中启用了 DST 或者
is_dst
设为 1,某些时间是无效的。例如 DST 自 2:00 生效,则所有处于
2:00 到 3:00 之间的时间都无效,
mktime()
会返回一个未定义(通常为负)的值。某些系统(例如
Solaris 8)的 DST 在午夜生效,则 DST 生效当天的 0:30
会被计算为前一天的 23:30。
注:
自 PHP 5.1.0 起,本参数已被废弃。应该使用新的时区处理特性来替代。
返回值
mktime()
根据给出的参数返回 Unix
时间戳。如果参数非法(例如年,月,日都是零),本函数返回
FALSE
(在 PHP 5.1 之前返回
-1
)。
范例
例子 1.
mktime()
例子
mktime()
在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值。例如下面例子中每一行都会产生字符串
"Jan-01-1998"。
<?php
echo
date
(
"M-d-Y"
,
mktime
(
0
,
0
,
0
,
12
,
32
,
1997
));
echo
date
(
"M-d-Y"
,
mktime
(
0
,
0
,
0
,
13
,
1
,
1997
));
echo
date
(
"M-d-Y"
,
mktime
(
0
,
0
,
0
,
1
,
1
,
1998
));
echo
date
(
"M-d-Y"
,
mktime
(
0
,
0
,
0
,
1
,
1
,
98
));
?>
|
|
例子 2. 下个月的最后一天
任何给定月份的最后一天都可以被表示为下个月的第 "0"
天,而不是 -1 天。下面两个例子都会产生字符串
"The last day in Feb 2000 is: 29"。
<?php
$lastday
=
mktime
(
0
,
0
,
0
,
3
,
0
,
2000
);
echo
strftime
(
"Last day in Feb 2000 is: %d"
,
$lastday
);
$lastday
=
mktime
(
0
,
0
,
0
,
4
, -
31
,
2000
);
echo
strftime
(
"Last day in Feb 2000 is: %d"
,
$lastday
);
?>
|
|
注释
|
注意
|
|
在 PHP 5.1.0 之前,在任何已知 Windows
版本以及一些其它系统下不支持负的时间戳。因此年份的有效范围限制为
1970 到 2038。
|