【问题标题】:Subtraction with php and mysql用php和mysql做减法
【发布时间】:2011-10-11 08:36:45
【问题描述】:

我正在开发一个 joomla 扩展,在 default.php 文件中我有这个代码:

foreach($this->subv as $subv) {
    $giorni = ((int)$subv->data_fine - (int)$subv->data_inizio);
    $ore = ($giorni * 24) % 24;
    echo $giorni.' : '.$ore;
}

$this->subv 是一个包含 mysql 查询结果的对象。我的问题是 echo 打印 $subv->data_fine 值,而不是减法的结果。 $subv->data_fine 和 $subv->data_inizio 包含 time() 函数的结果。 我该如何解决这个问题? 谢谢!

【问题讨论】:

  • $subv->data_fine 的格式是什么,请给我 var_dump($subv->data_fine) 结果。
  • 顺便问一下,$ore 不会一直是0吗?
  • var_dump 的结果是 string(10) "1318926057"
  • $ore 总是 0,是的,但现在没关系了 :)

标签: php mysql subtraction


【解决方案1】:

如果我正确理解您的问题,$giorni 等于 $subv->data_fine,这只是意味着 (int)$subv->data_inizio 的计算结果为零。你检查过吗?

【讨论】:

  • $subv->data_fine 和 $subv->data_inizio 包含 time() 函数的结果(在不同的时间调用..)
  • 如果你从 x 中减去 y 并且结果等于 x,那么除了 y 为零之外,没有任何可能。您已经为 data_fine 提供了 var_dump(),现在为 data_inizio 提供一个。到目前为止,我的水晶球告诉我它是空的,当转换为 int 时,它的计算结果为零:) 只需 var_dump($subv),你就会知道出了什么问题..
  • 是的,你是对的,是 NNULL。现在的问题是:为什么它是NULL?
  • 我们无法通过您目前提供的代码猜测。如果您无法弄清楚,请显示更多代码。
  • @pindol:当 mysql 可以为您完成时,为什么还要使用 php? (检查我的答案)
【解决方案2】:

您可以使用 mysql 获取 2 个日期之间的差异(DATEDIFF 函数):

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 2014-11-22
    相关资源
    最近更新 更多