TUESDAY, FEBRUARY 07, 2012

Parsing the Date and Time Sections from a Date/Time field

H

ere are some examples of how you could use a simple Javascript ‘split’ method to parse out the date and/or time value from a date/time field.  Both examples split out the date and time, populate them into variables, and then populate the date section into a regular date field on the same record.

Business rule example:

This could also be used in a graphical workflow ‘Run script’ activity but would need to include ‘current.update()’ at the end to call the update to the record.

Name: Populate Date from Date/Time
When: Before
Update: True
Condition: current.u_start_date_time.changes()

var dateSection = current.u_start_date_time.split(' ')[0]; //Gets the Date
var timeSection = current.u_start_date_time.split(' ')[1]; //Gets the Time
//Set the value of the Date field with the date from the Date/Time field
current.u_start_date = dateSection;


Client script example:

As is the case with all client scripting in Service-now, all fields referenced must actually be part of the rendered form (though they may be invisible) to be referenced by the client-side script.

Name: Populate Date from Date/Time
Type: OnChange
Field name: Start date/time (or whatever your date/time field is named)

function onChange(control, oldValue, newValue, isLoading) {
  //If the page isn't loading
  if (!isLoading) {
    //If the new value isn't blank
    if(newValue != '') {
      var dateSection = g_form.getValue('u_start_date_time').split(' ')[0]; //Gets the Date
      var timeSection = g_form.getValue('u_start_date_time').split(' ')[1]; //Gets the Time
      //Set the value of the Date field with the date from the Date/Time field
      g_form.setValue('u_start_date', dateSection);
    }
  }
}

Comments

Posted On
Jan 16, 2010
Posted By
amit

In my environment while working with dates I prefer to use date/time format stored in property. Below script is used in one of my script includes which converts expected start date into date format required by the underlying system.

// This Function takes the expected start date value from change_task and convert it as per bladelogic format
formatBLDeployDate: function(deployDate){
// Getting date and time format as per system properties
var inputformat = gs.getProperty('glide.sys.date_format') + ' ' + gs.getProperty('glide.sys.time_format');
var lv_parser = new java.text.SimpleDateFormat(inputformat);
// System stores date in UTC format.
lv_parser.setTimeZone(java.util.TimeZone.getTimeZone('UTC'));
// Date format for Bladelogic this date is split latter for date and time
var lv_formatter = new java.text.SimpleDateFormat('MM/dd/yyyy HH:mm:ss');
// Setting system time zone which is US/Eastern
lv_formatter.setTimeZone(java.util.TimeZone.getTimeZone(gs.getProperty('glide.sys.default.tz')));
// Parse the date and convert it into Date object
var lv_localDate = lv_parser.parse(deployDate);
// Convert date in local time zone format
lv_dateFormateInLocalTimeZone = lv_formatter.format(lv_localDate);
gs.log('Formated Date for Bl --&> '+ lv_dateFormateInLocalTimeZone);
return lv_dateFormateInLocalTimeZone;
 
},

Leave a Reply


Notify me of followup comments via e-mail. You can also subscribe without commenting.

Latest Comments

  • Mark Stanger: This linkage all happens for you if you use the task survey plugin. You can look on the wiki for more...
  • Vineeth: I want a way in which if a survey is filled in by the user the response are stored in the survey response...
  • Mark Stanger: This functionality doesn’t connect to an FTP server. See this line in the post above…...
  • Mark Stanger: The report page is back-end XML so there’s no way to directly manipulate the behavior of that...