PHP strtotime() 函数用法及示例
strtotime()函数将任何字符串的日期时间描述解析为 Unix 时间戳
定义和用法
strtotime()函数函数接受带有文本日期/时间值的日期/时间字符串,并将其解析为Unix时间戳。
注意:如果年份表示使用两位数格式,则值 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($time)
参数
序号 | 参数及说明 |
---|---|
1 | time(必需) 此值表示日期/时间字符串。 |
2 | now(可选) 这表示一个时间戳,用作计算相对日期的基础。 |
返回值
PHP strtotime()函数返回给定日期字符串的时间戳值。如果失败,此函数将返回布尔值false。
PHP版本
此函数最初是在PHP 4.0版中引入的,并且可以在所有更高版本中使用。
PHP 5.3.0:现在相对时间格式,比如这一周、前一周、上一周、下一周,指定一周从星期一到星期日,而不是使用相对于当前日期/时间的前后 7 天。
PHP 5.3.0: 现在 24:00 是有效的格式。
PHP 5.2.7:在这更早版本中,如果请求一个月中某个给定日期且该日期刚好是该月的第一天,则会错误地把增加一个星期到返回的时间戳中,这点现在已经得到更正。
PHP 5.1.0:如果失败则返回 FALSE(在这更早版本则返回 -1),并增加了 E_STRICT 和 E_NOTICE 时区错误。
PHP 5.0.2:现在正确计算 "now" 和其他相对时间是以当前时间为准,而不是以今天午夜的时间为准。
PHP 5.0.0:允许微秒(但微秒数通常被忽略)。
在线示例
以下示例演示了strtotime()函数的用法-
<?php $str = strtotime("12 September 2009"); print("Timestamp: ".$str); ?>测试看看‹/›
输出结果
Timestamp: 1252713600
在线示例
如果传递“ now”作为参数,则此函数返回当前时间戳
<?php $str = strtotime("now"); print("Timestamp: ".$str); ?>测试看看‹/›
输出结果
Timestamp: 1589369948
在线示例
现在,让我们通过传递各种日期值来调用此方法-
<?php // 设置时区 date_default_timezone_set("PRC"); $time = strtotime("2020-01-18 08:08:08"); // 将指定日期转成时间戳 // 打印当前时间 PHP_EOL 换行符,兼容不同系统 echo $time, PHP_EOL; // 更多实例 echo strtotime("now"), PHP_EOL; echo strtotime("now"), PHP_EOL; echo strtotime("10 September 2019"), PHP_EOL; echo strtotime("+1 day"), PHP_EOL; echo strtotime("+1 week"), PHP_EOL; echo strtotime("+1 week 2 days 4 hours 2 seconds"), PHP_EOL; echo strtotime("next Thursday"), PHP_EOL; echo strtotime("last Monday"), PHP_EOL; ?>测试看看‹/›
这将产生以下输出-
1579306088 1596165501 1596165501 1568044800 1596251901 1596770301 1596957503 1596643200 1595779200
在线示例
格式化为YYYY-MM-DD,并输出日期
<?php $timestamp = strtotime( "February 15, 2015" ); print date( 'Y-m-d', $timestamp ); ?>测试看看‹/›
这将产生以下输出-
2015-02-15