Drupal计算字段 - 计算时间

时间:2010-01-01 00:25:54

标签: drupal time

我在Drupal中使用了一个名为“Computed Field”的流行模块。我已经使用这个字段来为几个报价系统进行实时计算。我正在尝试使用它来计算时间表类型的应用程序的时间差异。因此,用户在CCK日期字段中输入两次(使用PHP自定义输入g:i - 即10:20 - 自动添加年份)但由于某种原因,我无法获得计算字段以显示任何计算。

这是最简单的测试示例......仍然无法正常工作

$start_value = $node->field_ts_train_start[0]['value'];
$end_value = $node->field_ts_train_end[0]['value'];


$node_field[0]['value'] = $end_value - $start_value;

从这里开始,我们将变量传递给$ display。任何人都可以看到为什么这不起作用?我对如何解决计算字段的任何建议持开放态度,或者使用整数而不是UNIX时间戳来构建自定义函数。

感谢。

2 个答案:

答案 0 :(得分:2)

关键是使用带有自定义输入字段的日期戳CCK字段。日期戳应包括所有级别的时间,自定义输入仅收集HH:MM。这会创建一个完整的unix时间戳。

然后使用计算字段从结束时间中减去开始时间。这样,标记将存储为整数,时间可以除以60以获得分钟数。

$start_value = $node->field_ts_start_train[0]['value'];
$end_value = $node->field_ts_end_train[0]['value'];
$node_field[0]['value'] = $end_value - $start_value;

答案 1 :(得分:0)

使用时间戳键,而不是值。值是字符串表示形式(2010年1月1日),而时间戳是UNIX时间(1234567890)

$start_value = $node->field_ts_train_start[0]['timestamp'];
$end_value = $node->field_ts_train_end[0]['timestamp'];
$node_field[0]['timestamp'] = $end_value - $start_value;