getDayOfWeekLocalTime

arobertson
Tera Guru

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'
});

Sourav16
Kilo Guru

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

arobertson
Tera Guru

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);
    }
}

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

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

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.