Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Drupal计算字段-计算时间_Drupal_Time - Fatal编程技术网

Drupal计算字段-计算时间

Drupal计算字段-计算时间,drupal,time,Drupal,Time,我在Drupal中使用了一个流行的模块,名为“Computed Field”。我使用此字段对几个报价系统进行了动态计算。我试图使用它来计算时间表类型的应用程序的时间差。因此,用户在CCK日期字段中输入两次(使用PHP自定义输入g:i-ie 10:20-year自动添加),但由于某些原因,我无法让计算字段显示任何计算 下面是最简单的测试示例…仍然不起作用 $start_value = $node->field_ts_train_start[0]['value']; $end_value =

我在Drupal中使用了一个流行的模块,名为“Computed Field”。我使用此字段对几个报价系统进行了动态计算。我试图使用它来计算时间表类型的应用程序的时间差。因此,用户在CCK日期字段中输入两次(使用PHP自定义输入g:i-ie 10:20-year自动添加),但由于某些原因,我无法让计算字段显示任何计算

下面是最简单的测试示例…仍然不起作用

$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。有人知道为什么这不起作用吗?我愿意听取任何关于如何处理computed字段的建议,或者使用整数而不是UNIX时间戳构建自定义函数的建议

谢谢


Tim

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


关键是将日期戳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;

这是很好的信息,这是我第一次尝试用时间做计算。但是,它仍然无法正常工作。如果我将“$node_field[0]['timestamp']”更改为…['value'],则得到零,否则得到NULL(无字段)。日期字段的类型如何?我正在使用“日期”,我应该试试DATETIME还是Datestamp?你的答案不是真的,还有一些其他的变量要考虑,比如日期字段类型和粒度。我已经解决了这个问题-发布决议作为答案。。
$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;