Reg : date and time

pavana3
Tera Expert
  • Dear Team ,

 

Catalog form I have start and enda date time fields all time of validation completed like time should between 8 to 18 only etc... And working fine. One problem I am facing in Ritm for example I have impersonate with US timezone user and selected start and end date like this 15 Jan 2024 time is 14 hours and then submitted the form RITM got generated.

Step 2 . In my timezone is CET ... End important and login with my timezone and seeing the Ritm it's showing 20 hours .. I need time between 8 to 18 only always user should allow to select and in Ritm I want to see in catalog whatever time selected same I want ... How solve this please help me . anyone

In script include I have done all validations like 8 to 18 hr between only should select otherwise through error etc... 

Besed on users timezone only it's showing the time in RITm 

 

If any more details need for solving issue please let me know

Thankyou

Bandi

 

 

1 ACCEPTED SOLUTION

Hello @pavana3 ,

Please give a try to the script below and let me know how it works for you.
Client Script:

if (newValue !== '') {
    var date_time = g_form.getValue("FDD_ImplementStartDateTime").split(" ");
    var date = date_time[0];
    var time = date_time[1];

    g_form.setValue("FDD_ImplementStartDate", date);
    g_form.setValue("FND_ImplementStartTime", time);

    var gAjax = new GlideAjax('BICMDBCatalogItemsUtils');
    gAjax.addParam('sysparm_name', 'validateImplementationStartDateTime');
    gAjax.addParam('sysparm_impl_startDate', newValue);
    gAjax.addParam('sysparm_leadTime', g_form.getValue('FND_Leadtime'));
    gAjax.addParam('sysparm_used_for', g_form.getValue('used_for'));
    gAjax.addParam('sysparm_agreedHours', g_form.getValue('implementation_outside_agreed_service_hours'));

    // Add time zone information to the GlideAjax call
    var userTimeZone = g_form.getUser().getTimeZoneName();
    gAjax.addParam('sysparm_userTimeZone', userTimeZone);

    gAjax.getXML(validateDate);
}

 

Script Include:

validateImplementationStartDateTime: function() {
    var correctTime = '';
    var dateTime = this.getParameter('syparm_impl_startDate');
    var leadTime = this.getParameter('sysparm_leadTime');
    var usedFor = this.getParameter('sysparm_used_for');
    var agreedhours = this.getParameter('sysparm_agreedHours');
    var userTimeZone = this.getParameter('sysparm_userTimeZone');

    // Use GlideDateTime to handle time zone conversions
    var selectedDateTime = new GlideDateTime(dateTime);
    selectedDateTime.setTZ(userTimeZone);

    if (usedFor !== 'Production' && agreedhours !== 'true') {
        correctTime = this.validateTime(selectedDateTime);
    } else {
        var gdt = new GlideDateTime();
        gdt.addDaysLocalTime(leadTime);
        gdt.addSeconds(3600);

        if (selectedDateTime.after(gdt)) {
            return 'true';
        } else {
            return 'Selected date has to be greater than Now + lead time + 1 hour';
        }
    }

    if (correctTime === 'true') {
        var gt = new GlideDateTime();
        gt.addDaysLocalTime(leadTime);
        gt.addSeconds(3600);

        if (selectedDateTime.after(gt)) {
            return 'true';
        } else {
            return 'Selected date has to be greater than Now + lead time + 1 hour';
        }
    } else {
        return "The time should be between 08:00 - 18:00 and the day should be in Weekdays";
    }
},

validateTime: function(dateTime) {
    // Your existing time validation logic goes here
    // Ensure that the time is between 08:00 - 18:00 and the day is a weekday
    // Return 'true' if the time is valid, otherwise return an error message
}

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Thanks,

Aniket


 

View solution in original post

8 REPLIES 8

pavana3
Tera Expert

Thank you so much Aniket 

Hello @pavana3 ,

No problem at all! If you run into any more issues or have additional questions, feel free to let me know.

Thank you & have a great day ahead!

Hi Aniket Chavan ,

 

do you know flow design ... in flow design i have planned start and planned end dates are there ... if user is selected MD release that planned start date should be Monday date should display in that week and end date also same but with in start date time  8 to end date time should before 18 hors need complete .

 

How to do this validation if you know please help me

 

Thanks & regards,

bandi

same validation how to do in flow design i have fields like planned start and end date  based on planned start date input i have to display next working day as planned end date how to do this in flow design if you know any one please replay.

 

Thanks & Regards

Bandi