PHP 中的时间操作:从 H:i 中添加和减去 30 分钟
在 PHP 中,处理与时间相关的任务对于各种任务至关重要应用程序。一种常见情况涉及修改格式为“H:i”的时间值。此格式表示以小时和分钟为单位的时间,例如“10:00”或“13:30”。
要从这些值中添加或减去特定时间间隔,我们可以使用 strtotime() 和 date( ) 函数。但是,如果初始时间值未正确格式化为时间戳,则可能会出现一些意外行为。
让我们考虑一个示例,我们的目标是创建两个新值:$startTime 30 分钟前 $time 和 $endTime 30 $time 之后的分钟,其中 $time 的格式为“H:i”。
下面的代码片段最初可能看起来像合理:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
但是,在将“10:00”作为 $time 传递后,我们遇到了意想不到的结果:$startTime 变为“00:30”而不是预期的“09:30”,$endTime 变成“01:30”而不是“10:30”。
关键问题在于最初的假设 $time 是一个时间戳。然而,它只是一个格式为“H:i”的字符串。要解决这个问题,我们必须首先使用 strtotime() 函数将 $time 转换为时间戳。
更正的代码:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
现在,结果符合我们的预期:$startTime 变为“09:30”,$endTime变为“10:30”。通过确保 $time 从一开始就是一个时间戳,我们可以在 PHP 中执行准确的时间操作。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3