This is what I tested. The content manager shows a different time but the console.log shows the correct local times for me. When the item data is returned on the page, the time is correct- I believe the content manager time format is in UTC and for some reason, does not represent the local time. So although my code will show content manager times that are not 4 pm and noon, the item time values are actually 12 & 4 pm when running in the browsers console. But here’s my hook example.
function daysBetween ( end , start ) {
let difference = end . getTime () - start . getTime ();
let TotalDays = Math . ceil ( difference / ( 1000 * 3600 * 24 ));
return TotalDays ;
}
export function Library_beforeUpdate ( item , context ) {
if ( item ) {
//format start date
let sDate = new Date ( item . startDate )
let sYear = sDate . getFullYear ()
let sMonth = sDate . getMonth ()
let sDay = sDate . getDate ()
let formattedSDate = new Date ( sYear , sMonth , sDay )
//format end date
**let** eDate = **new** Date ( item . endDate )
**let** eYear = eDate . getFullYear ()
**let** eMonth = eDate . getMonth ()
**let** eDay = eDate . getDate ()
**let** formattedEDate = **new** Date ( eYear , eMonth , eDay )
**let** days
**if** (! item . daysBetween ) {
days = daysBetween ( formattedEDate , formattedSDate )
console . log ( 'days between' , days )
//update item
item . daysBetween = days
}
//run this if days between exists or not
**if** ( days || item . daysBetween ) {
item . daysBetween ? days = item . daysBetween : **null**
**if** ( days <= 5 ) {
//4PM - 4PM
item . startDate = **new** Date ( sYear , sMonth , sDay , 16 ) //4 PM
console . log ( item . startDate , 'start' )
item . endDate = **new** Date ( eYear , eMonth , eDay , 16 ) //4 PM
console . log ( item . endDate , 'start' )
}
**if** ( days >= 6 ) {
//12PM - 12 PM
item . startDate = **new** Date ( sYear , sMonth , sDay , 12 ) //12 PM
console . log ( item . startDate , 'start' )
item . endDate = **new** Date ( eYear , eMonth , eDay , 12 ) //12 PM
console . log ( item . endDate , 'start' )
}
}
//return item
**return** item
}
}