- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-16-2020 09:39 AM
Hi all,
I have the following issue with getDayOfWeekLocalTime. If i pick the 5th December, its returning 2 (Tuesday) instead of a 6 (Saturday). It does seems to work fine if i change the date format in my user profile to yyyy-MM-dd.
Below is my script include. I'm basically taking a datetime input, checking if its a weekday against a schedule and then trying to print the day of the week.
var UserClientUtilities = Class.create();
UserClientUtilities.prototype = Object.extendsObject(AbstractAjaxProcessor, {
prioritySetter: function() {
var schedule = new GlideSchedule('7a5c6245db20e8907f8b6792ca961992'); //Catalog Item Priority Checker
var meetingDatetime = this.getParameter('sysparm_meeting_date_time');
var dateTime = new GlideDateTime(meetingDatetime);
var dateOnly = meetingDatetime.split(" ")[0];
var dayOfWeek = dateTime.getDayOfWeekLocalTime();
var isWeekday = "No";
if (schedule.isInSchedule(dateTime)) {
isWeekday = "Yes";
} else {
isWeekday = "No";
}
var answer = ("Current Meeting Date: " + dateOnly + " - " + "Weekday: " + isWeekday + " - " + "Day Selected: " + dayOfWeek);
return answer;
},
type: 'UserClientUtilities'
});
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-17-2020 04:09 AM
Seems due to format
Try this
var dt = '05/12/2020 09:03:34';
var gdt = new GlideDateTime();
gdt.setDisplayValue(dt,'dd/MM/yyyy HH:mm:ss');
gs.info(gdt.getDate());
var dayOfWeek = gdt.getDayOfWeekLocalTime();
gs.info(dayOfWeek);
Output:
So update your script like this
prioritySetter: function() {
var schedule = new GlideSchedule('7a5c6245db20e8907f8b6792ca961992'); //Catalog Item Priority Checker
var meetingDatetime = this.getParameter('sysparm_meeting_date_time');
var dateTime = new GlideDateTime();
dateTime.setDisplayValue(meetingDatetime,'dd/MM/yyyy HH:mm:ss');
var dateOnly = dateTime.getDate();
var dayOfWeek = dateTime.getDayOfWeekLocalTime();
var isWeekday = "No";
if (schedule.isInSchedule(dateTime)) {
isWeekday = "Yes";
} else {
isWeekday = "No";
}
var answer = ("Current Meeting Date: " + dateOnly + " - " + "Weekday: " + isWeekday + " - " + "Day Selected: " + dayOfWeek);
return answer;
},
Regards
Ankur
Ankur
⨠Certified Technical Architect || ⨠9x ServiceNow MVP || ⨠ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-16-2020 10:16 AM
Hi,
Could you tell me how and what value you are passing through the client script in sysparm_meeting_date_time parameter.
If you could show the client part how you are retrieving and passing the parameter via GlideAjax.
Thanks
Sourav
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-17-2020 12:45 AM
Its being passed from a catalog client script date/time variable.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('UserClientUtilities');
ga.addParam('sysparm_name', 'prioritySetter');
ga.addParam('sysparm_meeting_date_time', newValue);
ga.getXML(setPriority);
function setPriority(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-17-2020 12:54 AM
Hi,
in script include did you check by adding log what value you get for sysparm_meeting_date_time
var meetingDatetime = this.getParameter('sysparm_meeting_date_time');
gs.info('meetingDatetime'+meetingDatetime);
Also try to use this
var dateTime = new GlideDateTime(meetingDatetime.toString());
Regards
Ankur
Ankur
⨠Certified Technical Architect || ⨠9x ServiceNow MVP || ⨠ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â11-17-2020 01:13 AM
Hi @Ankur Bawiskar,
gs.info displays 05/12/2020 09:03:34. I think the problem is that getDayOfWeekLocalTime() is expecting to see the format as YYYY-MM-DD.
meetingDatetime.toString() made no difference.