当前位置: 首页 > 知识库问答 >
问题:

获取symfony2中两个日期时间之间的小时数

贡英华
2023-03-14

在Symfony 2中有两个日期时间格式的字段。现在我想得到提交表单后的总小时数

实体php

 private $timein;
 private $timeout;

 public function setTimein($timein)
 {
 ......
 public function getWorkHour()
 {
    $hour1 = 0; $hour2 = 0;
    $date1 = $this->timein;
    $date2 = $this->timeout;
    $datetimeObj1 = new \DateTime($date1);
    $datetimeObj2 = new \DateTime($date2);
    $interval = $datetimeObj1->diff($datetimeObj2);

    if($interval->format('%a') > 0){
        $hour1 = $interval->format('%a')*24;
    }
    if($interval->format('%h') > 0){
        $hour2 = $interval->format('%h');
    }

    $hour = ($hour1 + $hour2) . " hours.";
    return $hour;
}

显示html

 <th>No of Hour</th>
 <td>{{ entity.getWorkHour() }}</td>

这将抛出一个错误

在呈现模板期间引发异常(“DateTime::_construct()希望参数1为字符串,对象为给定的”)在。。。

你如何简单地得到同一天两个小时之间的小时数?

共有3个答案

陶星波
2023-03-14

您必须编写自定义细枝扩展名:

您必须使用以下代码编写此处所述的细枝函数,以便通过php函数生成差异:

$calcFrom = $from;

$calcTo = $to;
$diff = $now->diff($calcFrom);
$workHours = $diff->days * 24 + (int)$diff->format('%H');

并通过一个小树枝的延伸使其可用。请看这里。

如果您使用的是symfony2框架,那么可以使用KnpTimeBundle

在细枝中:与当前日期进行比较:

{# Returns something like "3 minutes ago" #}
{{ time_diff(form) }}

这与另一个日期相比:

{# Returns something like "3 minutes ago" #}
{{ time_diff(form , to ) }}

希望这能有所帮助

蒋乐意
2023-03-14

您的错误意味着$this-

至于日期之间的差异,您需要:

>

  • 将它们转换为时间戳

    获取他们之间的差异,并将其转换为小时。

  • 别锐
    2023-03-14

    你可以这样做

        $currentDate = new \DateTime();
        $lastDate = new \DateTime(); // your own date
        $diff = $currentDate->diff($lastDate);
        $hours = $diff->h;
        $hours = $hours + ($diff->days * 24);
        echo $hours;
    
     类似资料:
    • 问题内容: 我知道我可以使用momentjs做任何事情,还可以做一些涉及日期的事情。但是令人尴尬的是,我很难去做一件看起来很简单的事情:得到两次之间的差。 例: 我试过的 我不知道那里的“ 10”是什么。我住在巴西,所以如果相关的话,我们是utc-0300。 结果是持续时间正确的内部值: 所以,我想我的问题是:如何将momentjs持续时间转换为时间间隔?我肯定可以用 但我觉得有一些更 优雅 ,我

    • 我可以使用MomentJs获得两个日期之间的差异,如下所示: 但是,我还想在适用的情况下显示小时(仅当>=60分钟过去时)。 但是,当我尝试使用以下命令检索持续时间小时数时: 它返回的是当前小时,而不是两个日期之间的小时数。 我如何得到两个时刻之间的小时差?

    • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

    • 问题内容: 我可以使用MomentJs获得两个日期之间的差异,如下所示: 但是,我也想在适用时显示小时(仅当> = 60分钟过去时)。 但是,当我尝试使用以下方法检索工时时数: 它返回的是当前时间,而不是两个日期之间的小时数。 如何获得两个时刻之间的小时数差异? 问题答案: 你近了您只需要使用该方法请参阅docs。

    • 问题内容: 我陷入MySQL中的问题。我想获取两个日期时间项之间的记录数。 例如: 我的表中有一列名为“ created”的数据类型。 我想计算在“今天的4:30 AM”和“当前日期时间”之间的日期时间创建的记录。 我尝试了MySQL的一些功能,但仍然没有运气。 你能帮我吗?谢谢。 问题答案: 可能与: 或使用: 您可以根据需要更改日期时间。可以使用或获取所需的日期。

    • 我需要像这样显示一个月内和前一个月一个动作所用的总小时数: 我有一个SQL表,格式如下: 查询会是什么样子? 编辑: ツ的答案让我朝着正确的方向前进,但是我使用JOIN解决了这个问题。请参阅下面的解决方案。