PHP 时间比较:详细指南
比较 PHP 中的时间可能是一项棘手的任务。本文将全面解释如何使用各种方法有效比较时间。
当前解决方案的限制
问题中提供的代码片段,您尝试在其中将 $NowisTime 与 $ThatTime 进行比较失败,因为比较是在字符串之间进行的。 PHP 的字符串比较不能正确考虑时间差异。
使用时间戳的解决方案
一种可靠的方法是使用 mktime() 或 strtotime 将两个时间转换为时间戳(),然后进行数值比较。以下修改后的代码演示了这一点:
$ThatTime = "14:08:10"; if (time() >= strtotime($ThatTime)) { echo "ok"; }
在这种情况下,time() 返回当前时间戳,strtotime() 将 $ThatTime 转换为时间戳。现在,比较变得简单且准确。
使用 DateTime 的解决方案(具有时区感知)
PHP 的 DateTime 类允许进行更复杂的考虑时区的时间比较。以下是如何使用它:
$dateTime = new DateTime($ThatTime); if ($dateTime->diff(new DateTime)->format('%R') == ' ') { echo "OK"; }
diff()方法计算两个DateTime对象之间的差异,format()方法以特定格式返回,比如这里的'%R'表示正差或负差。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3