mktime
取得一个日期的 Unix 时间戳
&reftitle.description;
intfalsemktime
inthour
intnullminute&null;
intnullsecond&null;
intnullmonth&null;
intnullday&null;
intnullyear&null;
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从
Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。
任何可选或为 &null; 的参数都将根据本地日期和时间设置为当前值。
请注意,参数的顺序是很奇怪:month、day、year,而不是更合理的
year、month、day 顺序。
不带参数调用 mktime 已经不受支持,会导致 ArgumentCountError。
time 可以用来获取当前时间戳。
&reftitle.parameters;
hour
相对于一天开始的小时数,由 month、day 和
year 确定。负值是指当天零点前的小时。值大于 23 是指接下来几天的适当小时。
minute
相对于 hour 开始的分钟数。负值指的是上个小时的分钟。大于 59
的值将指向接下来几个小时的适当分钟。
second
相对于 minute 开始的秒数。负值是指前一分钟的秒数。大于 59
的值是指接下来几分钟的适当秒。
month
相对于去年年底的月份数。值 1 到 12 是指相关年份的正常日历月份。小于 1
的值(包括负值)按相反的顺序指向去年的月份,因此 0 是 12 月,-1 是 11
月,以此类推。值大于 12 是指接下来几年的适当月份。
day
相对于上个月月底的天数。值 1 到 28、29、30 或 31(取决于月份)是指相关月份的正常天数。小于
1 的值(包括负值)是指上个月的天数,因此 0 是上个月的最后一天,-1
是倒数第二天,以此类推。大于相关月份天数的值是指接下来几个月的适当某一天。
year
年份数,可以是两位或四位数字,0-69 对应于 2000-2069,70-100
对应于 1970-2000。在如今系统中普遍把 time_t 作为一个 32
位有符号整数的情况下,year
的合法范围是 1901 到 2038 之间。
&reftitle.returnvalues;
mktime 根据给出的参数返回 Unix 时间戳,如果时间戳不适合 PHP 整数则返回 &false;。
&reftitle.changelog;
&Version;
&Description;
8.0.0
hour 不再可选。如果需要 Unix 时间戳,可以使用 time。
8.0.0
现在 minute、second、month、day
和 year 允许为 null。
&reftitle.examples;
基本例子
]]>
mktime 例子
mktime
在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值。例如下面例子中每一行都会产生字符串
"Jan-01-1998"。
]]>
下个月的最后一天
任何给定月份的最后一天都可以被表示为下个月的第 "0"
天,而不是 -1 天。下面两个例子都会产生字符串
"The last day in Feb 2000 is: 29"。
]]>
&reftitle.seealso;
DateTimeImmutable 类
checkdate
gmmktime
date
time