@@ -324,14 +324,15 @@ define(['requirePath', './scripts.xml', './script-editor.xml'], function(require
324324 "type" : "field_dropdown" ,
325325 "name" : "FIELD" ,
326326 "options" : [
327- [ "yearweek (0-53 )" , "W " ] ,
327+ [ "hours (decimal )" , "H.ms " ] ,
328328 [ "weekday (0-6)" , "w" ] ,
329- [ "year" , "Y" ] ,
330329 [ "month (1-12)" , "m" ] ,
331330 [ "day" , "d" ] ,
332- [ "minutes" , "M" ] ,
333331 [ "hours" , "H" ] ,
334- [ "seconds" , "S" ]
332+ [ "minutes" , "M" ] ,
333+ [ "seconds" , "S" ] ,
334+ [ "yearweek (0-53)" , "W" ] ,
335+ [ "year" , "Y" ]
335336 ]
336337 } , {
337338 "type" : "input_value" ,
@@ -345,10 +346,11 @@ define(['requirePath', './scripts.xml', './script-editor.xml'], function(require
345346 Blockly . Lua [ 'lha_date' ] = function ( block ) {
346347 var field = block . getFieldValue ( 'FIELD' ) ;
347348 var value = Blockly . Lua . valueToCode ( block , 'VALUE' , Blockly . JavaScript . ORDER_NONE ) ;
348- var code = "os.date('%" + field + "', " + value + ")" ;
349- var numRe = new RegExp ( '^[VwYmdMHS]$' ) ;
350- if ( numRe . test ( field ) ) {
351- code = "tonumber(" + code + ")" ;
349+ var code ;
350+ if ( field === 'H.ms' ) {
351+ code = "(function(h, m, s) return tonumber(h) + tonumber(m) / 60 + tonumber(s) / 3600; end)(string.match(os.date('%H %M %S', " + value + "), '(%d+) (%d+) (%d+)'))" ;
352+ } else {
353+ code = "tonumber(os.date('%" + field + "', " + value + "))" ;
352354 }
353355 return [ code , Blockly . JavaScript . ORDER_MEMBER ] ;
354356 } ;
0 commit comments