📅  最后修改于: 2023-12-03 15:33:39.152000             🧑  作者: Mango
在 PHP 中,获取午夜过后的时间可以使用 date() 函数结合 strtotime() 函数来实现。
首先,我们来介绍一下 date() 函数。这个函数可以用来格式化一个时间戳或者表示时间的字符串。函数的基本语法如下:
date ( string $format [, int $timestamp = time() ] ) : string
其中,$format 参数表示需要返回的日期时间字符串的格式,$timestamp 参数表示需要格式化的时间戳。如果不传递 $timestamp 参数,默认为当前时间。
接下来,我们来介绍一下 strtotime() 函数。这个函数可以将一个表示时间的字符串转换为时间戳。函数的基本语法如下:
strtotime ( string $time [, int $now = time() ] ) : int|false
其中,$time 参数表示需要转换的表示时间的字符串,$now 参数表示当前时间的时间戳。如果不传递 $now 参数,默认为当前时间。
了解了这两个函数之后,我们来看一下获取午夜过后的时间的代码实现:
$date = date('Y-m-d', strtotime('+1 day'));
$time = date('H:i:s');
$midnight = $date . ' 00:00:00';
$nextMidnight = $date . '23:59:59';
if (strtotime($time) < strtotime('06:00:00')) {
$midnight = date('Y-m-d', strtotime('-1 day')) . ' 00:00:00';
$nextMidnight = $date . ' 23:59:59';
}
上面的代码中,首先获取当前时间的日期和时间部分,然后使用 strtotime() 函数获取明天的日期。接着,使用当前日期和时间和明天的日期拼接出午夜的时间和明天的午夜时间。最后,判断当前时间是否在午夜到早上 6 点之间,如果是,将午夜时间设置为昨天的午夜时间,明天的午夜时间不变。
这样,我们就成功地获取了午夜过后的时间。
参考资料: