- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-18-2023 03:06 PM
I created a before BR in Change, and it's able to get to whatever the next Friday from the planned start date, but the time is always set to 6 PM instead of 9 AM. How can I set it to 9 AM? Here is my script in BR,
var getDay = new GlideDateTime(current.start_date);
var t = getDay.getDayOfWeekLocalTime();
if (t == 1) {
getDay.addDaysLocalTime(5);
current.cab_date = getDay.getDisplayValue();
} else if (t == 2) {
getDay.addDaysLocalTime(4);
current.cab_date = getDay.getDisplayValue();
} else if (t == 3) {
getDay.addDaysLocalTime(3);
current.cab_date = getDay.getDisplayValue();
} else if (t == 4) {
getDay.addDaysLocalTime(2);
current.cab_date = getDay.getDisplayValue();
} else if (t == 5) {
getDay.addDaysLocalTime(1);
current.cab_date = getDay.getDisplayValue();
} else if (t == 6) {
getDay.addDaysLocalTime(7);
current.cab_date = getDay.getDisplayValue();
} else if (t == 7) {
getDay.addDaysLocalTime(6);
current.cab_date = getDay.getDisplayValue();
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2023 08:48 AM
Hi @bbf35621 missed a line, internally time is stored in UTC. So you need one more adjustment to store date/time in UTC.
var getDay = new GlideDateTime(current.start_date);
getDay.subtract( getDay.getLocalTime() ); // subtract the time portion of dateTime
getDay.add( 9 * 60 * 60 * 1000); // add 9 hours in milliseconds
getDay.subtract(getDay.getTZOffset()); // subtract timezone offset to get UTC time
var t = getDay.getDayOfWeekLocalTime();
Also you'll notice your addDaysLocalTime is off by '1' due to this adjustment.
hope that helped
--
Bala Guthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-18-2023 09:35 PM
Hi @bbf35621 here are two additional lines code you need
var getDay = new GlideDateTime(current.start_date);
getDay.subtract( getDay.getLocalTime() ); // subtract the time portion of dateTime
getDay.add( 9 * 60 * 60 * 1000); // add 9 hours in milliseconds
var t = getDay.getDayOfWeekLocalTime();
Hope this helps
--
Bala Guthy
Please mark this as a solution or helpful as appropriate
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2023 06:53 AM
I just tried that and it's still populated at 6 PM. Here are my screenshots,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2023 08:48 AM
Hi @bbf35621 missed a line, internally time is stored in UTC. So you need one more adjustment to store date/time in UTC.
var getDay = new GlideDateTime(current.start_date);
getDay.subtract( getDay.getLocalTime() ); // subtract the time portion of dateTime
getDay.add( 9 * 60 * 60 * 1000); // add 9 hours in milliseconds
getDay.subtract(getDay.getTZOffset()); // subtract timezone offset to get UTC time
var t = getDay.getDayOfWeekLocalTime();
Also you'll notice your addDaysLocalTime is off by '1' due to this adjustment.
hope that helped
--
Bala Guthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2023 11:04 AM
I have tried both your suggestions and the time result is still 6 PM.