Convert any date and Time format to MM-dd-yyyy hh:mm:ss
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā09-04-2024 08:15 AM - edited ā09-04-2024 08:17 AM
Hi Team,
I have a Requirement where planned start and Planned end date should be in between Change Planned start and Change Planned end date. I have written OnLoad script where it compares and if it is invalid (Same DateTime or outside of Change Planned start and End )it clears out Both Planned Start date and Planned End date, but this is not working for all Date Time Format. So i want to achieve this by taking it to MM-dd-yyyy hh:mm:ss 24hour format ( it should convert to mentioned format irrespective of what user choose in their system but it should convert to mentioned format) and compare so that it will work for any format.
User might select following Date Time Format in their instance
MM-dd-yyyy
dd/MM/yyyy
dd-MM-yyyy
dd.MM.yyyy
yyyy.MM.dd
Time Format
hh:mm:ss -24hr
hh.mm.ss -24hr
hh:mm:ss -12hr
hh.mm.ss -12hr
Please find the Onload Script
Can anyone help me on this please?
Regards,
Apoorva D
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā09-04-2024 08:45 AM
Hi @Apoorva D Try below code
Client Script:
function onLoad() {
var expected = g_form.getValue('expected_start');
var start = g_form.getValue('u_change_planned_start');
var end = g_form.getValue('u_change_planned_end');
var due1 = g_form.getValue('due_date');
var formattedExpected = formatDateTime(expected);
var formattedStart = formatDateTime(start);
var formattedEnd = formatDateTime(end);
var formattedDue1 = formatDateTime(due1);
var ajax = new GlideAjax('TRCheckDatesAjax');
ajax.addParam('sysparm_name', 'ExpectedStart');
ajax.addParam('sysparm_tskdt', formattedExpected);
ajax.addParam('sysparm_chgsdt', formattedStart);
ajax.addParam('sysparm_chgedt', formattedEnd);
ajax.addParam('sysparm_due', formattedDue1);
ajax.getXML(calculateDuration);
function calculateDuration(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer != 'true') {
g_form.clearValue('expected_start');
g_form.clearValue('due_date');
} else {
g_form.setValue("expected_start", expected);
}
}
}
function formatDateTime(dateTime) {
var formattedDateTime = new GlideDateTime(dateTime);
return formattedDateTime.getValue();
}
Script Include:
var TRCheckDatesAjax = Class.create();
TRCheckDatesAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
ExpectedStart: function() {
var d1 = new GlideDateTime(this.getParameter('sysparm_tskdt'));// Planned start
var d2 = new GlideDateTime(this.getParameter('sysparm_chgsdt'));// Change Planned start
var d3 = new GlideDateTime(this.getParameter('sysparm_chgedt'));// Change Planned end
var d4 = new GlideDateTime(this.getParameter('sysparm_due'));// Planned end
if((d1 >= d2 && d1 <= d3) && (d4 >= d1 && d4 <= d3)){
return 'true';
} else
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā09-05-2024 06:35 AM - edited ā09-10-2024 02:36 AM
Hi Sid_Takali,
I tried your code but This onload script is not working, it is not going inside