- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-05-2023 02:14 AM
Hi,
I need help to adding a day to a Date/Time Field.
The below script works fine but if the time is 00:00:00, it seems that Servicenow considering thate the field is the day before, so it does not add day visually.
exemple : output of the below script :
*** Script: 20/12/2022 00:00:00 => Display value in the field before adding day
*** Script: 2022-12-19 23:00:00 => when i log the field before adding day
*** Script: 2025-12-20 23:00:00 => when i log the field after adding day
I need to add a day considering the first line (display value) but not the second line.
var grActif = new GlideRecord('alm_hardware');
grActif.addQuery('sys_id', 'b7b558aa8735e950277a84880cbb356d');
grActif.query();
while(grActif.next()){
var receiveNum = grActif.receiving_line.getDisplayValue();
var dateFinGar = 3;
var actualDate = new GlideRecord('proc_rec_slip_item');
actualDate.addQuery('number', receiveNum);
actualDate.query();
if(actualDate.next()){
var selectedGuaranteeYears = dateFinGar;
var receivedDate = new GlideDateTime(actualDate.received);
receivedDate.addYearsLocalTime(selectedGuaranteeYears);
receivedDate.addDays(1);
}
gs.print(receivedDate);
}
Any help would be fine.
Regards,
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-06-2023 02:55 AM - edited 04-06-2023 03:01 AM
Can you show me the field where you want to add the day?
Also are you adding year to it?
Tried the below on a random record and it works well
var gr = new GlideRecord('change_request');
gr.get('64391d914f5c934099f1b3728110c718');
var gdt = new GlideDateTime(gr.start_date);
gs.print(gdt);
gdt.addYears(1);
gs.print(gdt);
gdt.addDays(1);
gs.print(gdt);
Output
*** Script: 2020-10-30 00:00:00
*** Script: 2021-10-30 00:00:00
*** Script: 2021-10-31 00:00:00
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-06-2023 02:46 AM
Anyone ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-06-2023 02:55 AM - edited 04-06-2023 03:01 AM
Can you show me the field where you want to add the day?
Also are you adding year to it?
Tried the below on a random record and it works well
var gr = new GlideRecord('change_request');
gr.get('64391d914f5c934099f1b3728110c718');
var gdt = new GlideDateTime(gr.start_date);
gs.print(gdt);
gdt.addYears(1);
gs.print(gdt);
gdt.addDays(1);
gs.print(gdt);
Output
*** Script: 2020-10-30 00:00:00
*** Script: 2021-10-30 00:00:00
*** Script: 2021-10-31 00:00:00
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-06-2023 02:59 AM
can you use addDaysUTC()
var grActif = new GlideRecord('alm_hardware');
grActif.addQuery('sys_id', 'b7b558aa8735e950277a84880cbb356d');
grActif.query();
while(grActif.next()){
var receiveNum = grActif.receiving_line.getDisplayValue();
var dateFinGar = 3;
var actualDate = new GlideRecord('proc_rec_slip_item');
actualDate.addQuery('number', receiveNum);
actualDate.query();
if(actualDate.next()){
var selectedGuaranteeYears = dateFinGar;
var receivedDate = new GlideDateTime(actualDate.received);
receivedDate.addYearsUTC(selectedGuaranteeYears);
gs.print(receivedDate);
}
}
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-06-2023 03:02 AM
Hi Anurag,
It is the received field from proc_rec_slip_item table, that appear on the alm_hardware record too :
Yes, i add a year to and it seems to work fine.
Regards,