Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php和mysql之间的工作日期时间_Php_Mysql_Datetime - Fatal编程技术网

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秒差异。但是经过一些探索,我意识到我还没有设定时区。设置时区后,它会在事件结束时返回正确的结果。谢谢