How to get current date and time based on users timezones
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-03-2015 09:19 AM
Hi All,
In our instance my time zone is US Eastern so when I am getting any date and time field value it is giving in US eastern. But my systems time zone is India so when I used "new Date()" it is giving value in India's timezone. So I am not able to compare those two field values.Please see the below code I have written.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var stDate=new Date(getDateFromFormat(g_form.getValue('RequestedStartDate'),g_user_date_time_format));
var now = new Date();
//alert(stDate);
//alert(now);
if(stDate < now)
{
alert('System open time should be greater than or equal to current date and time');
g_form.clearValue('RequestedStartDate');
//return false;
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2015 07:42 AM
Hi All,
Any idea on this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2015 07:47 AM
Hi Md
just generate your now variable in the same way, instead of reading a form value, pass the current date / time
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2015 07:53 AM
You mean to say get the value of current date and time from the form by creating another date and time field right?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2015 08:02 AM
Nope, but I had a quick look at one of my scripts for a Time worked mandatory field
i have that compares the sys_updated_on field against the current date and time
It uses a couple of ajax calls
function timeWorkedMandatory()
{
var lsu = g_form.getValue('sys_updated_on');
g_form.setVisible('sys_updated_on',false);
var state = g_form.getValue('state');
if (state !=7)
{
var ajax = new GlideAjax('MyDateTimeAjax');
ajax.addParam('sysparm_name','nowDateTime');
ajax.getXMLWait();
var rightnow = ajax.getAnswer();
//var rightnow = getDateFromFormat(ajax.getAnswer(), g_user_date_time_format);
var ajaxdc = new GlideAjax('ClientDateTimeUtils');
ajaxdc.addParam('sysparm_name','getNowDateTimeDiff');
ajaxdc.addParam('sysparm_fdt',lsu);
ajaxdc.addParam('sysparm_difftype','second');
ajaxdc.getXMLWait();
var answer = ajaxdc.getAnswer();
//g_form.addInfoMessage('rightnow : ' + rightnow);
//g_form.addInfoMessage('lsu : ' + lsu);
//g_form.addInfoMessage('answer : ' + answer);
if(g_user.hasRole('TimeMandatory') && answer < -60 )
{
g_form.setVisible('u_time_worked',true);
g_form.setValue('u_time_worked','');
g_form.setMandatory('u_time_worked',true);
}
else if(g_user.hasRole('TimeMandatory') && answer > -60)
{
g_form.setVisible('u_time_worked',true);
g_form.setValue('u_time_worked','');
g_form.setMandatory('u_time_worked',false);
}
else
{
g_form.setVisible('u_time_worked',false);
g_form.setMandatory('u_time_worked',false);
}
}
}