diff --git a/CHANGELOG b/CHANGELOG index edaa870de3..f182193066 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Support empty value for timedelta converter * Unify PYSON string format Version 5.8.0 - 2020-11-02 diff --git a/src/common.js b/src/common.js index 2f0e3e38c1..8538e13296 100644 --- a/src/common.js +++ b/src/common.js @@ -331,20 +331,22 @@ sign = '-'; } value = Math.abs(value); - converter = Object.keys(converter).map(function(key) { - return [key, converter[key]]; - }); - converter.sort(function(first, second) { - return second[1] - first[1]; - }); + converter = Object.keys( + Sao.common.timedelta._get_separator()).map(function(key) { + return [key, converter[key]]; + }); var values = []; var k, v; for (var i = 0; i < converter.length; i++) { k = converter[i][0]; v = converter[i][1]; - var part = Math.floor(value / v); - value -= part * v; - values.push(part); + if (v) { + var part = Math.floor(value / v); + value -= part * v; + values.push(part); + } else { + values.push(0); + } } for (i = 0; i < converter.length - 3; i++) { k = converter[i][0]; diff --git a/tests/sao.js b/tests/sao.js index 510d7bcddf..3e2e2f35d7 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -1306,6 +1306,7 @@ converter_time_only.s = Sao.common.timedelta.DEFAULT_CONVERTER.s; converter_time_only.m = Sao.common.timedelta.DEFAULT_CONVERTER.m; converter_time_only.h = Sao.common.timedelta.DEFAULT_CONVERTER.h; + converter_time_only.d = 0; QUnit.test('timedelta.format time only converter', function() { time_only_converter_values.forEach(function(test) {