EasyUI Forum
October 18, 2025, 02:46:42 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: problem using datetimebox in form  (Read 8767 times)
Opan Mustopah
Full Member
***
Posts: 164


Indonesia


View Profile Email
« on: April 27, 2015, 09:57:46 PM »

hello again.

i have a problem using datetimebox plugin in form,
and i have a custom formatter and parser for that datetimebox.

here is my code :
Code:
$.fn.datetimebox.defaults.formatter = function(date){
  var arrMonth = [
    'Jan',
    'Feb',
    'Mar',
    'Apr',
    'May',
    'Jun',
    'Jul',
    'Aug',
    'Sep',
    'Oct',
    'Nov',
    'Dec'
  ];
  console.log(date); ==> always undefined when load data in form
  var d = date.getDate();
  var m = date.getMonth();
  var y = date.getFullYear();

  var hh = date.getHours();
  var mm = date.getMinutes();

  return (d < 10 ? ('0' + d)  : d) + ' ' + arrMonth[m] + ' ' + y + ' ' + hh + ':' + mm;
}

$.fn.datetimebox.defaults.parser = function (s){
  var arrMonth = [
    'Jan',
    'Feb',
    'Mar',
    'Apr',
    'May',
    'Jun',
    'Jul',
    'Aug',
    'Sep',
    'Oct',
    'Nov',
    'Dec'
  ];

  if (!s) return new Date();

  if (s.indexOf('-') > 0) {
    var ss = (s.split('-'));
    var y = parseInt(ss[0], 10);
    var m = parseInt(ss[1], 10) - 1;
    var d = parseInt(ss[2], 10);

  } else {
    var ss = (s.split(' '));
    var y = parseInt(ss[2], 10);
    var m = arrMonth.indexOf(ss[1]);
    var d = parseInt(ss[0], 10);

  }
 
    if (!isNaN(y) && !isNaN(m) && !isNaN(d)) {
      var date = new Date(y, m, d);

      if (ss[3] != null){
        var t = ss[3].split(":");
        date.setHours(t[0]);
        date.setMinutes(t[1]);
      }
      return date;

    }else{
      return new Date();
    }
}


everytime i trying to load form data, date parameter always shows undefinde value,

and format value for load into datetimebox is like this "2015-04-28 16:00:00"
am i missing something?

many thanks for the answer

Logged

-- Bajak Otak --
*** Sorry for my bad english :3 ***
--JeasyUI version 1.4--
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: April 28, 2015, 01:46:35 AM »

Please try to use the following code:
Code:
<script>
$.extend($.fn.datetimebox.defaults, {
monthNames: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
formatter:function(date){
var opts = $(this).datetimebox('options');
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

var hh = date.getHours();
var mm = date.getMinutes();
return d+' '+opts.monthNames[m]+' '+y+' '+hh+':'+mm;
},
parser:function(s){
if (!s){return new Date();}
var opts = $(this).datetimebox('options');
var ss = s.split(' ');
var d = parseInt(ss[0],10);
var m = $.inArray(ss[1], opts.monthNames);
var y = parseInt(ss[2],10);
var tt = ss[3].split(':');
var hh = parseInt(tt[0],10);
var mm = parseInt(tt[1],10);
return new Date(y,m,d,hh,mm,0);
}
})
</script>
Logged
Opan Mustopah
Full Member
***
Posts: 164


Indonesia


View Profile Email
« Reply #2 on: April 28, 2015, 01:48:33 AM »

thanks stworthy for the extended code.
Logged

-- Bajak Otak --
*** Sorry for my bad english :3 ***
--JeasyUI version 1.4--
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!