PHP 中的时间操作:从 H:i 中添加和减去 30 分钟
在 PHP 中,处理与时间相关的任务对于各种任务至关重要应用程序。一种常见情况涉及修改格式为“H:i”的时间值。此格式表示以小时和分钟为单位的时间,例如“10:00”或“13:30”。
要从这些值中添加或减去特定的时间间隔,我们可以使用 strtotime() 和 date( ) 函数。但是,如果初始时间值未正确格式化为时间戳,则可能会出现一些意外行为。
让我们考虑一个示例,我们的目标是创建两个新值:$startTime 30 分钟前 $time 和 $endTime 30 $time 之后的分钟,其中 $time 的格式为“H:i”。
下面的代码片段最初看起来可能是合理的:
<code class="php">$startTime = date("H:i",strtotime('-30 minutes',$time)); $endTime = date("H:i",strtotime('+30 minutes',$time));</code>
但是,在经过“10:00”时作为 $time,我们遇到了意想不到的结果:$startTime 变成了“00:30”而不是预期的“09:30”,$endTime 变成了“01:30”而不是“10:30”。
关键问题在于最初假设 $time 是时间戳。然而,它只是一个格式为“H:i”的字符串。要解决这个问题,我们必须首先使用 strtotime() 函数将 $time 转换为时间戳。
更正后的代码:
<code class="php">$time = strtotime('10:00'); $startTime = date("H:i", strtotime('-30 minutes', $time)); $endTime = date("H:i", strtotime('+30 minutes', $time));</code>
现在,结果与我们的预期一致:$startTime变为“09:30”,$endTime 变为“10:30”。通过确保 $time 从一开始就是一个时间戳,我们可以在 PHP 中执行准确的时间操作。
以上是在 PHP 中处理时间格式时,如何避免出现意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!