Drupal: 有起始和结束时间,来计算持续时间:修订间差异

来自站长百科
跳转至: 导航、​ 搜索
(新页面: 此例使用KarenS的'''日期模块'''来创建两个日期字段''field_start_time''和''field_end_time'',它们记录小时数和分钟数。接着我们创建一个计算型字段...)
 
无编辑摘要
第3行: 第3行:
计算型字段设定:
计算型字段设定:


*'''Computed Code(计算代码):'''
*'''Computed Code,计算代码:'''
<pre>
<pre>
$start_date = date_make_date($node->field_start_time[0]['value']);
$start_date = date_make_date($node->field_start_time[0]['value']);
第17行: 第17行:
*'''Display Format,显示格式''':$display = $node_field_item['value'] . " hours";
*'''Display Format,显示格式''':$display = $node_field_item['value'] . " hours";


*检查 'Store using the database settings below
*检查 'Store using the database settings below'


*'''Data Type,数据类型''': float(浮点)
*'''Data Type,数据类型''': float(浮点)

2008年12月8日 (一) 13:58的版本

此例使用KarenS的日期模块来创建两个日期字段field_start_timefield_end_time,它们记录小时数和分钟数。接着我们创建一个计算型字段来定义持续时间--小时数--为一类小数数字,比如1.5就是1小时,30分钟。

计算型字段设定:

  • Computed Code,计算代码:
$start_date = date_make_date($node->field_start_time[0]['value']);
$start = $start_date->db->parts;
$end_date = date_make_date($node->field_end_time[0]['value']);
$end = $end_date->db->parts;
$start_decimal = $start['hours'] + ($start['minutes'] / 60);
$end_decimal = $end['hours'] + ($end['minutes'] / 60);
$node_field[0]['value'] = $end_decimal - $start_decimal;
  • 检查 'Display this field'
  • Display Format,显示格式:$display = $node_field_item['value'] . " hours";
  • 检查 'Store using the database settings below'
  • Data Type,数据类型: float(浮点)
  • Data Length,数据长度: 3,2
  • 检查 'Sortable'