strtotime 将任何字符串的日期时间描述解析为 Unix 时间戳
发表日期:2021-07-01 08:55:28 | 来源: | | 浏览(936) 分类:Date/Time 函数
strtotime
(PHP 4, PHP 5, PHP 7, PHP 8)
strtotime — 将任何字符串的日期时间描述解析为 Unix 时间戳
说明
$datetime
, int $now
= time()): int
本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为
Unix 时间戳(自 January 1 1970 00:00:00 UTC 起的秒数),其值相对于
now
参数给出的时间,如果没有提供
now
参数则用系统当前时间。
本函数返回的 Unix 时间戳不包含时区信息,为了实现对 "日期/时间" 进行计算,推荐使用功能更强大的 DateTimeImmutable 类。
本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在 date_default_timezone_get() 函数页面中有说明。
参数
-
datetime
-
日期/时间字符串。正确格式的说明详见 日期与时间格式。
-
now
-
用来计算返回值的时间戳。
返回值
成功则返回时间戳,否则返回 false
。在 PHP 5.1.0
之前本函数在失败时返回 -1
。
错误/异常
在每 次调用日期/时间函数时,如果时区无效则会引发 E_NOTICE
错误,如果使用系统设定值或 TZ
环境变量,则会引发 E_STRICT
或 E_WARNING
消息。参见
date_default_timezone_set()。
范例
示例 #1 strtotime() 例子
<?php echo strtotime("now"), "\n"; echo strtotime("10 September 2000"), "\n"; echo strtotime("+1 day"), "\n"; echo strtotime("+1 week"), "\n"; echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n"; echo strtotime("next Thursday"), "\n"; echo strtotime("last Monday"), "\n"; ?>
示例 #2 失败检查
<?php $str = 'Not Good'; // PHP 5.1.0 之前的版本中和应该改成和 -1 进行比较if (($timestamp = strtotime($str)) === false) { echo "The string ($str) is bogus"; } else { echo "$str == " . date('l dS of F Y h:i:s A', $timestamp); } ?>
注释
注意:
如果给定的年份是两位数字的格式,则其值 0-69 表示 2000-2069,70-100 表示 1970-2000。 See the notes below for possible differences on 32bit systems (possible dates might end on 2038-01-19 03:14:07).
注意:
有效的时间戳通常从 Fri, 13 Dec 1901 20:45:54 UTC 到 Tue, 19 Jan 2038 03:14:07 UTC(对应于 32 位有符号整数的最小值和最大值)。
PHP 5.1.0 之前,不是所有的平台都支持负的时间戳,那么日记范围就被限制为不能早于 Unix 纪元。这意味着在 1970 年 1 月 1 日之前的日期将不能用在 Windows,一些 Linux 版本,以及几个其它的操作系统中。
在 64 位的 PHP 版本中,时间戳的有效范围实际上是无限的,因为 64 位可以覆盖最多 2930 亿年的范围。
注意:
不同的分隔符,比如
m/d/y
或d-m-y
会影响到解析结果:若以反斜线 (/
) 为分隔,将会做为美洲日期m/d/y
来解析;而当分隔符为短横线 (-
) 或点 (.
) 时,则将做为欧洲日期d-m-y
格式来解析。当年份只有两位数字,且分隔符为短横线 (-
时,日期字符串将被解析为y-m-d
格式。为了避免潜在的歧义,最好使用 ISO 8601 标准格式 (
YYYY-MM-DD
) 或 DateTime::createFromFormat() 来表达。
注意:
不建议使用此函数对日期进行数学运算。在 PHP 5.3 及以后版本中,推荐使用 DateTime::add() 和 DateTime::sub() 函数,PHP 5.2 中可以使用 DateTime::modify()。
参见
- 日期时间格式
- DateTime::createFromFormat() - 根据给定的格式解析日期时间字符串
- checkdate() - 验证一个格里高里日期
- strptime() - 解析由 strftime 生成的日期/时间
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- checkdate 验证一个格里高里日期(0)
- date_add 别名 DateTime::add()(0)
- date_create_from_format 别名 DateTime::createFromFormat()(0)
- date_create_immutable_from_format 别名 DateTimeImmutable::createFromFormat()(0)
- date_create_immutable 别名 DateTimeImmutable::__construct()(0)
- date_create 别名 DateTime::__construct()(0)
- date_date_set 别名 DateTime::setDate()(0)
- date_default_timezone_get 取得一个脚本中所有日期时间函数所使用的默认时区(0)
- date_default_timezone_set 设定用于一个脚本中所有日期时间函数的默认时区(0)
- date_diff 别名 DateTime::diff()(0)
- date_format 别名 DateTime::format()(0)
- date_get_last_errors 别名 DateTime::getLastErrors()(0)
- date_interval_create_from_date_string 别名 DateInterval::createFromDateString()(0)
- date_interval_format 别名 DateInterval::format()(0)
- date_isodate_set 别名 DateTime::setISODate()(0)
- date_modify 别名 DateTime::modify()(0)
- date_offset_get 别名 DateTime::getOffset()(0)
- date_parse_from_format Get info about given date formatted according to the specified format(0)
- date_parse 返回指定日期/时间的详细信息的关联数组(0)
- date_sub 别名 DateTime::sub()(0)
- date_sun_info Returns an array with information about sunset/sunrise and twilight begin/end(0)
- date_sunrise 返回给定的日期与地点的日出时间(0)
- date_sunset 返回给定的日期与地点的日落时间(0)
- date_time_set 别名 DateTime::setTime()(0)
- date_timestamp_get 别名 DateTime::getTimestamp()(0)
- date_timestamp_set 别名 DateTime::setTimestamp()(0)
- date_timezone_get 别名 DateTime::getTimezone()(0)
- date_timezone_set 别名 DateTime::setTimezone()(0)
- date 格式化一个本地时间/日期(0)
- getdate 取得日期/时间信息(0)
- gettimeofday 取得当前时间(0)
- gmdate 格式化一个 GMT/UTC 日期/时间(0)
- gmmktime 取得 GMT 日期的 UNIX 时间戳(0)
- gmstrftime 根据区域设置格式化 GMT/UTC 时间/日期(0)
- idate 将本地时间日期格式化为整数(0)
- localtime 取得本地时间(0)
- microtime 返回当前 Unix 时间戳和微秒数(0)
- mktime 取得一个日期的 Unix 时间戳(0)
- strftime 根据区域设置格式化本地时间/日期(0)
- strptime 解析由 strftime() 生成的日期/时间(0)
- strtotime 将任何字符串的日期时间描述解析为 Unix 时间戳(0)
- time 返回当前的 Unix 时间戳(0)
- timezone_abbreviations_list 别名 DateTimeZone::listAbbreviations()(0)
- timezone_identifiers_list 别名 DateTimeZone::listIdentifiers()(0)
- timezone_location_get 别名 DateTimeZone::getLocation()(0)
- timezone_name_from_abbr Returns the timezone name from abbreviation(0)
- timezone_name_get 别名 DateTimeZone::getName()(0)
- timezone_offset_get 别名 DateTimeZone::getOffset()(0)
- timezone_open 别名 DateTimeZone::__construct()(0)
- timezone_transitions_get 别名 DateTimeZone::getTransitions()(0)
- timezone_version_get 获取 timezonedb 的版本(0)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)