Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Omender Singh
Tera Guru

Hello ServiceNow Ninjas,

Javascript & ServiceNow scripting run hand in hand. We often use both in a mixed way such as using javascript API within Glide APIs or vice versa. And when it comes to dates I have faced a lot of confusion. 

In this article, I am providing a few basics of Javascript Dates that help in identifying, managing & using javascript date objects in a better way.

All below code snippets are tested in the background script.

1. Declare a new date object:-

var d = new Date();
gs.print(d);
*** Script: Thu Sep 08 2022 03:29:47 GMT-0700 (PDT)

 

2. You can initialize the date as well:-

var d = new Date(2018, 11, 24, 10, 33, 30, 0);
gs.print(d);
*** Script: Mon Dec 24 2018 10:33:30 GMT-0800 (PST)

 

3. A date object can be created using "date strings" as well:-

var d = new Date("October 13, 2014 11:13:00");
gs.print(d);
*** Script: Mon Oct 13 2014 11:13:00 GMT-0700 (PDT)

 

4. How to parse date? 

If you have a valid date string, you can use the Date. parse() method to convert it to milliseconds. Then milliseconds can be converted into a date object.

var d1 = Date.parse("March 21, 2012");
gs.print("Date1 - "+d1);
var d2 = new Date(d1);
gs.print("Date2 - "+d2);
*** Script: Date1 - 1332313200000
*** Script: Date2 - Wed Mar 21 2012 00:00:00 GMT-0700 (PDT)

 

5. Use the following methods to extract information from the date object:-

MethodDescription
getFullYear()Get the year as a four-digit number (yyyy)
getMonth()Get the month as a number (0-11)
getDate()Get the day as a number (1-31)
getHours()Get the hour (0-23)
getMinutes()Get the minute (0-59)
getSeconds()Get the second (0-59)
getMilliseconds()Get the millisecond (0-999)
getTime()Get the time (milliseconds since January 1, 1970)
getDay()Get the weekday as a number (0-6)
Date.now()Get the time. ECMAScript 5.
var d = new Date();
gs.print(d.getFullYear());
gs.print(d.getMonth());
gs.print(d.getDate());
gs.print(d.getHours());
*** Script: 2022
*** Script: 8
*** Script: 8
*** Script: 3

 

I hope this will help you in getting an edge over Javascript date objects and functions.

---------------------------------------------------------------------------------------------------------------------

I am providing amazing content on my YouTube channel & personal blog. Requesting you to go through it and share your valuable feedback.

YouTube Channel - ServiceNow 911

My blog - ServiceNow Spectaculars 

Linked Group - ServiceNow Spectaculars

Comments
Omender Singh
Tera Guru

 

 

subbaraop
Tera Contributor

// Create a GlideDateTime object for the current time (in UTC by default)
var currentTime = new GlideDateTime();

// Convert the current time to the 'America/New_York' timezone
var estTime = new GlideDateTime(currentTime.getDisplayValue());
var timeZone = new GlideTimeZone();
estTime = timeZone.convertTimeZone(estTime, 'America/New_York');

// Create a GlideDateTime object for 4:30 PM today in EST
var fourThirtyPmToday = new GlideDateTime();
fourThirtyPmToday.setDisplayValue(estTime.getDate().getByFormat('yyyy-MM-dd') + ' 16:30:00');
fourThirtyPmToday = timeZone.convertTimeZone(fourThirtyPmToday, 'America/New_York');

// Create a GlideDateTime object for 11:00 PM today in EST
var elevenPmToday = new GlideDateTime();
elevenPmToday.setDisplayValue(estTime.getDate().getByFormat('yyyy-MM-dd') + ' 23:00:00');
elevenPmToday = timeZone.convertTimeZone(elevenPmToday, 'America/New_York');

// Check if the current time is between 4:30 PM and 11:00 PM EST
if (estTime.after(fourThirtyPmToday) && estTime.before(elevenPmToday)) {
gs.info("True: The current time is between 4:30 PM and 11:00 PM EST.");
return true;
} else {
gs.info("False: The current time is not between 4:30 PM and 11​⬤

Version history
Last update:
‎09-08-2022 03:19 AM
Updated by: