在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为字符串,对象为给定的”)在。。。
你如何简单地得到同一天两个小时之间的小时数?
您必须编写自定义细枝扩展名:
您必须使用以下代码编写此处所述的细枝函数,以便通过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 ) }}
希望这能有所帮助
您的错误意味着$this-
至于日期之间的差异,您需要:
>
将它们转换为时间戳
获取他们之间的差异,并将其转换为小时。
你可以这样做
$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解决了这个问题。请参阅下面的解决方案。