📜  从字符串 php 创建日期(1)

📅  最后修改于: 2023-12-03 15:36:17.298000             🧑  作者: Mango

从字符串 PHP 创建日期

在 PHP 中,我们可以使用 strtotime 函数将字符串转换成日期时间。该函数返回一个 Unix 时间戳,可以传递给 date 函数进行格式化输出。

基本用法

以下是 strtotime 的基本用法:

$timestamp = strtotime('2022-01-01 00:00:00');
$date = date('Y-m-d H:i:s', $timestamp);
echo $date; // 输出:2022-01-01 00:00:00

通过将一个日期时间字符串作为参数传递给 strtotime 函数,我们可以得到一个 Unix 时间戳。然后,我们可以将该时间戳作为第二个参数传递给 date 函数,进行格式化输出。

特殊字符串

strtotime 还支持许多特殊的字符串格式,比如 -1 day+2 weeksnext Mondaylast day of February 等等。

以下是特殊字符串的示例:

// 获取昨天的日期
$timestamp = strtotime('-1 day');
$date = date('Y-m-d', $timestamp);
echo $date; // 输出昨天的日期,比如 2021-12-31

// 获取两周后的日期
$timestamp = strtotime('+2 weeks');
$date = date('Y-m-d', $timestamp);
echo $date; // 输出两周后的日期,比如 2022-01-14

// 获取下周一的日期
$timestamp = strtotime('next Monday');
$date = date('Y-m-d', $timestamp);
echo $date; // 输出下周一的日期,比如 2022-01-03

// 获取二月最后一天的日期
$timestamp = strtotime('last day of February');
$date = date('Y-m-d', $timestamp);
echo $date; // 输出 2022-02-28

以上代码片段展示了如何使用特殊字符串来获取日期时间值。我们可以通过相对日期和时间的方式快速计算某个日期的前后时间范围。

时区问题

最后,我们需要注意时区问题。在 PHP 中,时间戳是以 UTC 时间为基础的。如果我们需要处理本地时间,需要设置好时区。比如,如果我们需要获取服务器所在时区的当前时间:

date_default_timezone_set('Asia/Shanghai');
$timestamp = time();
$date = date('Y-m-d H:i:s', $timestamp);
echo $date; // 输出服务器所在时区的当前时间

上述代码片段展示了如何设置时区,并获取服务器所在时区的当前时间。

参考资料:PHP 手册 - strtotime