从float_time转换为float

时间:2013-11-20 11:32:32

标签: openerp

众所周知,我们可以在widget="float_time"的帮助下使用浮点字段。

现在,我的问题是如何计算/转换此float_time值为浮点值。

实施例

我在表单中给出了值 00:10 ,当我查看数据库时,它显示 0.16666667

提前致谢。

2 个答案:

答案 0 :(得分:4)

这是js中用于以float_time格式显示值的代码:

case 'float_time':
        var pattern = '%02d:%02d';
        if (value < 0) {
            value = Math.abs(value);
            pattern = '-' + pattern;
        }
        var hour = Math.floor(value);
        var min = Math.round((value % 1) * 60);
        if (min == 60){
            min = 0;
            hour = hour + 1;
        }
        return _.str.sprintf(pattern, hour, min);

所以在你的情况下,在db中它存储为0.16666667。所以min将是var min = Math.round((0.16666667 % 1) * 60);,当舍入时将为10 ...

答案 1 :(得分:-1)

def float_time_convert(float_val):
    factor = float_val < 0 and -1 or 1
    val = abs(float_val)
    return (factor * int(math.floor(val)), "{:0>2d}".format(int(round((val % 1) * 60))))

打印&#34;%i:%s&#34; %(float_time_convert(3.61))