php和mysql之间的工作日期时间
我只是想看看我的方式是否正确。我想计算一个活动的剩余时间 它有三个组成部分php和mysql之间的工作日期时间,php,mysql,datetime,Php,Mysql,Datetime,我只是想看看我的方式是否正确。我想计算一个活动的剩余时间 它有三个组成部分 从mysql检索的开始日期时间(在mysql日期时间中) 持续时间(整数形式的分钟数),也可从mysql检索 从php函数now()检索的当前日期时间 要计算: 剩余时间(以时间hh:mm:ss表示),来自公式(开始+持续时间)-现在 我建议的守则是: $row = data->fetch_assoc(); $start = $row["start_time"]; // e.g: "2015-06-19 0
- 从mysql检索的开始日期时间(在mysql日期时间中)
- 持续时间(整数形式的分钟数),也可从mysql检索
- 从php函数now()检索的当前日期时间
- 剩余时间(以时间hh:mm:ss表示),来自公式
(开始+持续时间)-现在
$row = data->fetch_assoc();
$start = $row["start_time"]; // e.g: "2015-06-19 09:37:16"
$duration = $row["duration"]; // e.g: 60 (minutes)
$now = time(); // e.g: 1434648994
$start_dt = strtotime ($start);
$remaining = ($start_dt + $duration * 60) - $now;
echo "Remaining time: ".$remaining. " seconds."
这是否正确?您的代码现在计算事件结束前的时间
如果
$start\u dt
较低,则$now
得到负值。剩余$resisting
是否为您提供了正确的秒数?请参阅@Castis,它不是。但是经过进一步的探索,我意识到我没有设置默认时区。设置默认时区后,它返回正确的结果。谢谢。@johncode谢谢你的代码。它让我更深入地了解了在php datetime中可以做些什么,我正在考虑使用您的代码变体。谢谢请注意,php时间和mysql时间甚至可能不在同一时区中配置。理想情况下,您希望确保所有这些值都由相同的系统设置。还要注意白天的储蓄问题。是的,但不是。结果中存在无法解释的18000秒差异。但是经过一些探索,我意识到我还没有设定时区。设置时区后,它会在事件结束时返回正确的结果。谢谢