getting datetime field in client script returns wrong time
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-17-2017 07:14 AM
Hello Developers,
I have run into an issue and have found a solution, but was wondering if there was something I was missing.... an easier way?
Issue: I have a reference variable on a catalog item to the user table. when someone selects a user I have an onchange script that gets that reference with a callback function to get a custom date/time field. The issue is that when I view it on my profile on the user record it displays the time in my timezone. when I pull it with this script it pulls it in the systems timezone. So it may be 4 hours off due to time differences.
client script:
function onChange(control, oldValue, newValue, isLoading) {
var caller = g_form.getReference('hiring_manager', doAlert); // doAlert is our callback function
}
function doAlert(caller) { //reference is passed into callback as first arguments
try{
//alert(caller.u_test.getDisplayValue());
var ajax = new GlideAjax('ClientDateTimeUtils');
ajax.addParam('sysparm_name', 'setTimeZone');
ajax.addParam('sysparm_dt', caller.u_name_of_date_field_on_user);
ajax.getXML(doSomething);
}catch(e){
alert(e);
}
}
function doSomething(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('name of time variable',answer);
}
Current solution:
I have a glideajax call in my onchange client script to a script include that simply returns the date by :
setTimeZone: function(){
var date = this.getParameter('sysparm_dt');
var dt = new GlideDateTime(date);
return dt.getDisplayValue();
}
this works but I cant help but feel there is an easier way?
If you have any definitive knowledge on this, I will be very grateful.
Thanks,
Nate
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-17-2017 09:38 AM
if getreference is used in a client script it is best practice to use a callback function which i am using...
my script is bringing in about 10 fields from the user record which is why I am using get reference and its the initial way i set this up. I had to implement the glide ajax call to get the time/date in the users timezone format. which is the only reason i am using glideajax otherwise I wouldn't use either.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-27-2024 09:13 AM
Just ran into this exact issue and was able to fix it with your comment, thank you!