- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-01-2020 03:46 AM
Hi Every one,
getNumericValue() is not working, below is the script.
var start_date = new GlideDateTime();
var end_date = '04-02-2020 07:30:00';
gs.print(start_date.getNumericValue());
gs.print(end_date.getNumericValue());
gs.print(new GlideDateTime());
result:
*** Script: 1585737978939
*** Script: undefined
*** Script: 2020-04-01 10:46:18
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-01-2020 04:00 AM
Hi,
You can try this script.
var start_date = new GlideDateTime();
var end_date = new GlideDateTime("2020-02-04 07:30:00");
gs.print(start_date.getNumericValue());
gs.print(end_date.getNumericValue());
gs.print(new GlideDateTime());
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-08-2021 06:32 AM
Hi,
The getNumericValue() will not work in the Client Side.
Case 1: Let's try to use GlideAjax API
In the Client Script onChange():
var ga = new GlideAjax("dateHelper"); //Script include name
ga.addParam("sysparm_name", "compareDate"); //Function name in the script include
ga.addParam("sysparm_start_date", ""); //First date
ga.addParam("sysparm_end_date", newValue); //Second date
ga.getXML(function (response) { //Callback function
var result = response.responseXML.documentElement.getAttribute("answer");
//sysparm_start_date < sysparm_end_date ? "true" : "false"
//return type default is string.
if (result == "false") {
//TODO
g_form.addErrorMessage("Selected date must be in future");
}
});
Create a new Script Include which name is dateHelper, set Client callable to True
Define compareDate function.
var dateHelper = Class.create();
dateHelper.prototype = Object.extendsObject(AbstractAjaxProcessor, {
compareDate: function () {
var result = false;
var startDate, gdStart, gdStartNumeric;
var endDate, gdEnd, gdEndNumeric;
startDate = this.getParameter('sysparm_start_date'); //Get fist date
endDate = this.getParameter('sysparm_end_date'); //Get second date
if (startDate) {
gdStart = new GlideDateTime(startDate);
} else {
gdStart = new GlideDateTime();
}
gdStartNumeric = gdStart.getNumericValue();
if (endDate) {
gdEnd = new GlideDateTime(endDate);
} else {
gdEnd = new GlideDateTime();
}
gdEndNumeric = gdEnd.getNumericValue();
if (gdStartNumeric < gdEndNumeric) { //Compare two dates
result = true;
}
return result;
},
type: 'dateHelper'
});
However, I don't know why the result of the compareDate function is parsed to a string instead of keeping the boolean type as I returned.
Please let me know if you have the answer.
Case 2: Use date() function of the javascript. (Refer to use this)
var startDate = new Date(start_date);
var numericStartDate = startDate.getTime();
var endDate = new Date(end_date);
var numericEndDate = endDate.getTime();
gs.info(numericStartDate);
gs.info(numericEndDate);
Kind Regard,
