<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question How to write a date validation script in server side? in Developer forum</title>
    <link>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900707#M557633</link>
    <description>&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did date validation in client side for following scenarios. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have two fields start date and end date. Two dates are pre-populate today's date. (i.e. Start date: 06-05-2016 and End date: 06-05-2016)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;For start date validation:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;- User should not select past date.&lt;/P&gt;&lt;P&gt;For this I wrote following Onchange client script:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function onChange(control, oldValue, newValue, isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; if (!isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(newValue != '') { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //current date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateObj = new Date(); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateStr = formatDate(currentDateObj, g_user_date_format); &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateNum = getDateFromFormat(currentDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; //get start date &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateStr = g_form.getValue('u_onboard_date'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateNum = getDateFromFormat(startDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (startDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_onboard_date', ''); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (startDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_onboard_date', ''); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt;} &amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;For End date validation:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;- User should not select past date.&lt;/P&gt;&lt;P&gt;- User should not select and end date prior to the start date.&lt;/P&gt;&lt;P&gt;- User should not select more than 365 days from start date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For this I wrote following Onchange client script:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function onChange(control, oldValue, newValue, isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; if (!isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(newValue != '') { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //current date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateObj = new Date(); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateStr = formatDate(currentDateObj, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateNum = getDateFromFormat(currentDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; //get start date &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateStr = g_form.getValue('u_onboard_date'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateNum = getDateFromFormat(startDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //get end date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var endDateStr = g_form.getValue('u_expected_offboard_date');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var endDateNum = getDateFromFormat(endDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; var diff = endDateNum - startDateNum; &amp;nbsp; &amp;nbsp; //alert("end:"+endDateNum); alert("start:"+startDateNum); alert("diff:"+diff);&lt;/P&gt;&lt;P&gt; var maxDiff = 30*24*60*60*1000; //30 days * 24 hrs * 60 mins * 60 secs * 1000 ms &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (endDateNum &amp;lt;= 0){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('Please use the calendar icon to select a date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (endDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date',''); &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (endDateNum&amp;lt;startDateNum){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; alert('You cannot select an end date prior to the start date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (diff&amp;gt;=31536000000){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; alert('You cannot select more than 365 days from start date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt;} &amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, my requirement is, how can we write date validation for above scenarios in server side. Please provide any useful scripts for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It would be very helpful to me. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for you great help in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Prasanna Kumar&lt;/P&gt;</description>
    <pubDate>Fri, 06 May 2016 15:32:05 GMT</pubDate>
    <dc:creator>prasanna7869</dc:creator>
    <dc:date>2016-05-06T15:32:05Z</dc:date>
    <item>
      <title>How to write a date validation script in server side?</title>
      <link>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900707#M557633</link>
      <description>&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did date validation in client side for following scenarios. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have two fields start date and end date. Two dates are pre-populate today's date. (i.e. Start date: 06-05-2016 and End date: 06-05-2016)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;For start date validation:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;- User should not select past date.&lt;/P&gt;&lt;P&gt;For this I wrote following Onchange client script:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function onChange(control, oldValue, newValue, isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; if (!isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(newValue != '') { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //current date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateObj = new Date(); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateStr = formatDate(currentDateObj, g_user_date_format); &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateNum = getDateFromFormat(currentDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; //get start date &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateStr = g_form.getValue('u_onboard_date'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateNum = getDateFromFormat(startDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (startDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_onboard_date', ''); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (startDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_onboard_date', ''); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt;} &amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;For End date validation:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;- User should not select past date.&lt;/P&gt;&lt;P&gt;- User should not select and end date prior to the start date.&lt;/P&gt;&lt;P&gt;- User should not select more than 365 days from start date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For this I wrote following Onchange client script:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function onChange(control, oldValue, newValue, isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; if (!isLoading) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(newValue != '') { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //current date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateObj = new Date(); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateStr = formatDate(currentDateObj, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var currentDateNum = getDateFromFormat(currentDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; //get start date &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateStr = g_form.getValue('u_onboard_date'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; var startDateNum = getDateFromFormat(startDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //get end date &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var endDateStr = g_form.getValue('u_expected_offboard_date');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var endDateNum = getDateFromFormat(endDateStr, g_user_date_format); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; var diff = endDateNum - startDateNum; &amp;nbsp; &amp;nbsp; //alert("end:"+endDateNum); alert("start:"+startDateNum); alert("diff:"+diff);&lt;/P&gt;&lt;P&gt; var maxDiff = 30*24*60*60*1000; //30 days * 24 hrs * 60 mins * 60 secs * 1000 ms &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (endDateNum &amp;lt;= 0){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('Please use the calendar icon to select a date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (endDateNum &amp;lt; currentDateNum) { &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert('You cannot select a date in the past.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date',''); &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (endDateNum&amp;lt;startDateNum){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; alert('You cannot select an end date prior to the start date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; else if (diff&amp;gt;=31536000000){ &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; alert('You cannot select more than 365 days from start date.'); &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; g_form.setValue('u_expected_offboard_date','');&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &lt;/P&gt;&lt;P&gt;} &amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, my requirement is, how can we write date validation for above scenarios in server side. Please provide any useful scripts for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It would be very helpful to me. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for you great help in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Prasanna Kumar&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2016 15:32:05 GMT</pubDate>
      <guid>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900707#M557633</guid>
      <dc:creator>prasanna7869</dc:creator>
      <dc:date>2016-05-06T15:32:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to write a date validation script in server side?</title>
      <link>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900708#M557634</link>
      <description>&lt;P&gt;I think you mean a business rule....right?&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;I have two date comparisons written in my instance in different way... YOu can try both...&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d;"&gt;&lt;STRONG&gt;first one:- &amp;nbsp; insert and update business rule&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="_jivemacro_uid_14625495972749158 jive_macro_code jive_text_macro" data-renderedposition="92_8_1192_176" jivemacro_uid="_14625495972749158"&gt;&lt;P&gt;var diff = gs.dateDiff(gs.nowDateTime(),current.start_date.getDisplayValue(),true);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;//This will calculate diff between 'change date' field time and Present time.&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;if (diff &amp;lt; 0)&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;{&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;// set error message on "change_date" field&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.start_date.setError('Date entered is from past, please enter date for future');&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;else&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;{&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.update();&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d;"&gt;&lt;STRONG&gt;second :- before insert and update business rule&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14625496045038859 jive_text_macro" data-renderedposition="331_8_1192_416" jivemacro_uid="_14625496045038859"&gt;&lt;P&gt;verifyDates();&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;function verifyDates() {&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;var dReqStart = new GlideDateTime();&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;dReqStart.setDisplayValue(current.start_date);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;var dReqEnd = new GlideDateTime();&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;dReqEnd.setDisplayValue(current.end_date);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;var today = new GlideDateTime();&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;today.setDisplayValue(gs.nowDateTime());&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;if ((dReqStart.getNumericValue() - today.getNumericValue())/(1000*60*60*24) &amp;lt; 0) {&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; gs.addErrorMessage("Cannot Request for Approval! Implementation Start Date and time cannot begin before today.");&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.approval='not requested';&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.state.setValue(6);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.setAbortAction(true);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;} else if ((dReqEnd.getNumericValue() - dReqStart.getNumericValue())/(1000*60*60*24) &amp;lt; 0) {&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; gs.addErrorMessage("Cannot Request for Approval! Implementation End Date and time cannot come before Request Start Date.");&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.approval='not requested';&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.state.setValue(6);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; current.setAbortAction(true);&lt;/P&gt;&lt;BR /&gt;&lt;P&gt; &amp;nbsp; return false;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 May 2016 15:46:57 GMT</pubDate>
      <guid>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900708#M557634</guid>
      <dc:creator>SME</dc:creator>
      <dc:date>2016-05-06T15:46:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to write a date validation script in server side?</title>
      <link>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900709#M557635</link>
      <description>&lt;P&gt;One note about your first script, Mansi.&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;Avoid using the current.update() in business rules. If you are manipulating the current object, typically these go in a BEFORE business rule, which has an implicit update.&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;If you're doing this an AFTER rule, a current.update() operation is going to retrigger all the business rules again (probably not what you want.)&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;Your business rule has no data changes, so it doesn't need a current.update() anyway. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; Perhaps if the error is found, a setAbortAction() with a BEFORe is more appropriate to stop any updates from happening.&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;A href="http://wiki.servicenow.com/index.php?title=Business_Rules_Best_Practices" title="http://wiki.servicenow.com/index.php?title=Business_Rules_Best_Practices"&gt;Business Rules Best Practices - ServiceNow Wiki&lt;/A&gt; &lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 06 May 2016 17:51:47 GMT</pubDate>
      <guid>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900709#M557635</guid>
      <dc:creator>Chuck Tomasi</dc:creator>
      <dc:date>2016-05-06T17:51:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to write a date validation script in server side?</title>
      <link>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900710#M557636</link>
      <description>&lt;P&gt;Thanks Chuck. &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" data-renderedposition="8_107_16_16" src="https://www.servicenow.com/8.0.1.35b65d4/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;. I will take care of this in future.&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 06 May 2016 19:27:58 GMT</pubDate>
      <guid>https://www.servicenow.com/community/developer-forum/how-to-write-a-date-validation-script-in-server-side/m-p/1900710#M557636</guid>
      <dc:creator>SME</dc:creator>
      <dc:date>2016-05-06T19:27:58Z</dc:date>
    </item>
  </channel>
</rss>

