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:
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;
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:
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);
}
}
}
//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, 2010Posted By
amitIn 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.
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;
},