欢迎访问宙启技术站
智能推送

PHP时间函数——date和strtotime的使用技巧?

发布时间:2023-08-20 02:21:34

PHP时间函数是开发中经常用到的重要函数,其中最常用的就是date和strtotime函数。date函数用于格式化一个本地时间/日期,而strtotime函数用于将任何字符串的日期时间转换成Unix时间戳。

在使用这两个函数时,需要注意一些使用技巧:

1. date函数格式化日期时间:

date函数的语法为:string date ( string $format [, int $timestamp = time() ] )

其中,$format参数是必需的,用于指定日期时间的格式。$timestamp参数是可选的,用于指定要格式化的日期时间,如果没有指定,则默认为当前时间。

例如,要将当前时间以YYYY-MM-DD的格式进行输出,可以使用以下代码:

echo date("Y-m-d"); // 输出:2022-01-01

2. strtotime函数解析字符串日期时间:

strtotime函数的语法为:int strtotime ( string $time [, int $baseTime = time() ] )

其中,$time参数是必需的,用于指定要解析的日期时间字符串。$baseTime参数是可选的,用于指定参考时间,如果没有指定,则默认为当前时间。

例如,要将字符串日期时间"2022-01-01"转换成Unix时间戳,可以使用以下代码:

$timestamp = strtotime("2022-01-01");

echo $timestamp; // 输出:1640995200

3. 格式化字符串中的日期时间:

在date函数中,可以使用一些特定的字符来表示不同的日期时间格式:

- Y:4位数字的年份,例如:2022

- m:2位数字的月份(01 - 12),例如:01

- d:2位数字的月份中的日(01 - 31),例如:01

- H:24小时制的小时(00 - 23),例如:00

- i:分钟数(00 - 59),例如:00

- s:秒数(00 - 59),例如:00

例如,要将Unix时间戳转换成YYYY年MM月DD日的格式,可以使用以下代码:

$timestamp = 1640995200;

echo date("Y年m月d日", $timestamp); // 输出:2022年01月01日

4. 解析字符串中的日期时间:

在strtotime函数中,可以使用一些特定的字符串来表示不同的日期时间格式:

- "yyyy-mm-dd":表示年月日的格式,例如:"2022-01-01"

- "yyyy/mm/dd":表示年月日的格式,例如:"2022/01/01"

- "mm-dd-yyyy":表示月日年的格式,例如:"01-01-2022"

- "mm/dd/yyyy":表示月日年的格式,例如:"01/01/2022"

- "+n day":表示当前日期之后n天的日期,例如:"+1 day"表示明天的日期

例如,要将字符串日期时间"2022/01/01"转换成Unix时间戳,可以使用以下代码:

$timestamp = strtotime("2022/01/01");

echo $timestamp; // 输出:1640995200

5. 日期时间的计算与比较:

使用strtotime函数,可以对日期时间进行简单的计算与比较。例如,可以计算某个日期之后若干天的日期,或者比较两个日期的大小。

例如,可以计算"2022/01/01"之后3天的日期:

$timestamp = strtotime("2022/01/01 +3 day");

echo date("Y/m/d", $timestamp); // 输出:2022/01/04

或者比较两个日期的大小:

$date1 = strtotime("2022/01/01");

$date2 = strtotime("2022/01/02");

if ($date1 < $date2) {

    echo "日期1早于日期2";

} else {

    echo "日期1晚于日期2";

}

通过合理地运用date和strtotime函数,可以很方便地处理日期时间相关的操作。但需要注意的是,因为日期时间格式的不同,有些特殊日期时间的解析可能会出现问题,所以在使用时需谨慎验证。