Java Script

const message = "hello";
let date = new Date();
date.setSeconds(date.getSeconds() + 600);
year = date.getFullYear();
month = date.getMonth();
time = date.toISOString()
// Update header text
document.querySelector('#header').innerHTML = message

// Log to console
console.log(message)
console.log(date)
console.log(time)
console.log(year)
console.log(month)

---CONSOLE output ---
hello
Tue Jul 25 2023 11:09:20 GMT+0100 (Irish Standard Time)
2023-07-25T10:09:20.739Z
2023
6
let date = new Date();
let currentTime = date.setSeconds(date.getSeconds());//
let currentTimeIso = date.toISOString()
console.log("currentTime:",currentTimeIso)

function getRoundedDate(minutes, d=new Date()) {
  let ms = 1000 * 60 * minutes; // convert minutes to ms
  // Lets add 60 seconds (60000ms) onto current time and THEN round UP to nearest 5 mins.
  let roundedDate = new Date(Math.ceil((d.getTime() + 60000) / ms) * ms);
  return roundedDate}
let startTime = getRoundedDate(5, new Date()); 
let startTimeIso = startTime.toISOString()
console.log("startTime:",startTime)
console.log("startTimeIso:",startTimeIso)


---- console output ----
currentTime:2023-07-26T08:25:48.103Z
startTime:Wed Jul 26 2023 09:30:00 GMT+0100 (Irish Standard Time)
startTimeIso:2023-07-26T08:30:00.000Z
function addMinutes(date, minutes) {
    return new Date(date.getTime() + minutes*60000);
}
let roundUpMin = 5;
let meetDurationMin = 60;
let ms = 1000 * 60 * roundUpMin; // e.g. convert 5 minutes to ms
let d = new Date();
//Note before we round to nearest 5 mins we also add on one more minute, so 12:49 will round to 12:55 and not 12:50.
let myStartTime = new Date(Math.ceil((d.getTime() + 60000) / ms) * ms);
let myEndTime = new Date(addMinutes(myStartTime, meetDurationMin));

startTime = myStartTime.toISOString();
endTime = myEndTime.toISOString();
1;
const fruitsArray = ["apple", "orange", "banana"];

// Map the array to an array of objects with the desired format
const fruitsObjects = fruitsArray.map((fruit) => ({ fruit }));

// Convert the array of objects to a JSON string
const jsonString = JSON.stringify(fruitsObjects);

console.log(jsonString);

---- console ---
[{"fruit":"apple"},{"fruit":"orange"},{"fruit":"banana"}]
function roundUpToNearestHour(datetime) {
  // Clone the datetime to avoid modifying the original value
  const roundedDatetime = new Date(datetime);

  // Get the minutes part of the datetime
  const minutes = roundedDatetime.getMinutes();

  // If minutes is greater than 0, add 1 hour to round up
  if (minutes > 0) {
    roundedDatetime.setHours(roundedDatetime.getHours() + 1);
  }

  // Set minutes and seconds to 0 to get the rounded hour
  roundedDatetime.setMinutes(0);
  roundedDatetime.setSeconds(0);

  return roundedDatetime;
}

// Example usage:
const currentDatetime = new Date(); // Get the current datetime
const roundedDatetime = roundUpToNearestHour(currentDatetime);

console.log("Original datetime:", currentDatetime);
console.log("Rounded datetime:", roundedDatetime);
function convertToUTC(datetime, timeZone) {
  // Create a formatter for the specific timezone
  const formatter = new Intl.DateTimeFormat('en-US', {
    timeZone,
    year: 'numeric',
    month: 'numeric',
    day: 'numeric',
    hour: 'numeric',
    minute: 'numeric',
    second: 'numeric',
    hour12: false,
  });

  // Format the datetime in the specific timezone
  const parts = formatter.formatToParts(datetime);

  // Extract date and time components
  const year = parseInt(parts.find(part => part.type === 'year').value, 10);
  const month = parseInt(parts.find(part => part.type === 'month').value, 10) - 1;
  const day = parseInt(parts.find(part => part.type === 'day').value, 10);
  const hour = parseInt(parts.find(part => part.type === 'hour').value, 10);
  const minute = parseInt(parts.find(part => part.type === 'minute').value, 10);
  const second = parseInt(parts.find(part => part.type === 'second').value, 10);

  // Create a new Date object in the UTC timezone
  return new Date(Date.UTC(year, month, day, hour, minute, second));
}

// Example usage:
const datetimeString = '2023-07-27T12:34:56';
const timeZone = 'America/New_York';
const datetime = new Date(datetimeString);

const utcDatetime = convertToUTC(datetime, timeZone);
console.log(utcDatetime.toISOString()); // UTC formatted datetime
function convertToUTC(datetimeString, timeZone) {
  const datetime = new Date(datetimeString);
  const options = {
    timeZone,
    timeZoneName: 'short',
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
  };
  
  const utcDatetimeString = datetime.toLocaleString('en-US', options);
  return new Date(utcDatetimeString).toISOString();
}

// Example usage:
const datetimeString = '2023-07-27T11:50';
const timeZone = 'America/New_York';

const utcDatetime = convertToUTC(datetimeString, timeZone);
console.log(utcDatetime); // Output: '2023-07-27T10:50:00.000Z'

Example1 - Time Now

date = new Date().toLocaleString('en-GB', { timeZone: 'Europe/London' })
console.log(date);

Example2 - a specific Time

new Date("2020-09-17T17:15:00.000Z").toLocaleString('en-GB', { timeZone: 'Europe/London' })
let date = new Date().toISOString().split('.').shift() ;
console.log(date);

Some JavaScript implementations do not support LocalTime Timezones - e.g. Webex Connect!!! AHHHHH!

Here is a manual way for next 10 years to set the time correctly (setting UTC to be the Irish / British Summer time)

date = new Date();
//date = new Date('2024-05-10T05:00:00.000Z');
year = date.getFullYear();
ist = date; //Irish Standard Time (note we do need to remove the Z later!)

startSummerTime2023 = Date.parse('2023-03-26T01:00:00.000Z');
endSummerTime2023 = Date.parse('2023-10-29T01:00:00.000Z');
startSummerTime2024 = Date.parse('2024-03-31T01:00:00.000Z');
endSummerTime2024 = Date.parse('2024-10-27T01:00:00.000Z');
startSummerTime2025 = Date.parse('2025-03-30T01:00:00.000Z');
endSummerTime2025 = Date.parse('2025-10-26T01:00:00.000Z');
startSummerTime2026 = Date.parse('2026-03-29T01:00:00.000Z');
endSummerTime2026 = Date.parse('2026-10-25T01:00:00.000Z');
startSummerTime2027 = Date.parse('2027-03-28T01:00:00.000Z');
endSummerTime2027 = Date.parse('2027-10-31T01:00:00.000Z');
startSummerTime2028 = Date.parse('2028-03-26T01:00:00.000Z');
endSummerTime2028 = Date.parse('2028-10-29T01:00:00.000Z');
startSummerTime2029 = Date.parse('2029-03-25T01:00:00.000Z');
endSummerTime2029 = Date.parse('2029-10-28T01:00:00.000Z');
startSummerTime2030 = Date.parse('2030-03-31T01:00:00.000Z');
endSummerTime2030 = Date.parse('2030-10-27T01:00:00.000Z');
startSummerTime2031 = Date.parse('2031-03-30T01:00:00.000Z');
endSummerTime2031 = Date.parse('2031-10-26T01:00:00.000Z');
startSummerTime2032 = Date.parse('2032-03-28T01:00:00.000Z');
endSummerTime2032 = Date.parse('2032-10-31T01:00:00.000Z');
startSummerTime2033 = Date.parse('2033-03-27T01:00:00.000Z');
endSummerTime2033 = Date.parse('2033-10-30T01:00:00.000Z');
startSummerTime2034 = Date.parse('2034-03-26T01:00:00.000Z');
endSummerTime2034 = Date.parse('2034-10-29T01:00:00.000Z');


//Check if current date in UTC is in Summer Time DateTime Range
if (  (date > startSummerTime2023 && date < endSummerTime2023) 
   || (date > startSummerTime2024 && date < endSummerTime2024) 
   || (date > startSummerTime2025 && date < endSummerTime2025) 
   || (date > startSummerTime2026 && date < endSummerTime2026) 
   || (date > startSummerTime2027 && date < endSummerTime2027) 
   || (date > startSummerTime2028 && date < endSummerTime2028) 
   || (date > startSummerTime2029 && date < endSummerTime2029) 
   || (date > startSummerTime2030 && date < endSummerTime2030) 
   || (date > startSummerTime2031 && date < endSummerTime2031) 
   || (date > startSummerTime2032 && date < endSummerTime2032) 
   || (date > startSummerTime2033 && date < endSummerTime2033) 
   || (date > startSummerTime2034 && date < endSummerTime2034) ) 
   {
     
     ist.setHours(date.getHours()+1);
     ist = date.toISOString();
     console.log(ist)
     //1;
   } else if ((year >= 2023) && (year < 2035){
     //Do not change time - as its time equal to UTC
     ist = date.toISOString();
     console.log(ist)
     //2;
   } else {
     //error - contact your admin
     console.log('error - outside daterange - contact your admin');
   }
date = '2023-03-26T01:23:45.000Z';
formatdate = date.slice(8,10) + '/' + date.slice(5,7) + '/'+date.slice(0,4)
formattime = date.slice(11,13) + ':' + date.slice(14,16);
console.log(formatdate);
console.log(formattime);
startTime = '2023-08-04T15:59:00.000Z';
startTimeDate = Date.parse(startTime);
startTimeDate = new Date(startTimeDate);
//We are going to check if the entered time is valid.
//A valid time is in the future from now and within the next 30 days.
//since the 'startTime' we have is in UTC format but user enters it in Irish Standard Time,
//We therefore need to get the current time and convert this to IST.
// This set the variable 'ist' to be current time in IST but says its UTC.

date = new Date(); //Current Time
ist = date;
year = date.getFullYear();
let istPlus30Days = new Date(ist);

startSummerTime2023 = Date.parse('2023-03-26T01:00:00.000Z');
endSummerTime2023 = Date.parse('2023-10-29T01:00:00.000Z');
startSummerTime2024 = Date.parse('2024-03-31T01:00:00.000Z');
endSummerTime2024 = Date.parse('2024-10-27T01:00:00.000Z');
startSummerTime2025 = Date.parse('2025-03-30T01:00:00.000Z');
endSummerTime2025 = Date.parse('2025-10-26T01:00:00.000Z');
startSummerTime2026 = Date.parse('2026-03-29T01:00:00.000Z');
endSummerTime2026 = Date.parse('2026-10-25T01:00:00.000Z');
startSummerTime2027 = Date.parse('2027-03-28T01:00:00.000Z');
endSummerTime2027 = Date.parse('2027-10-31T01:00:00.000Z');
startSummerTime2028 = Date.parse('2028-03-26T01:00:00.000Z');
endSummerTime2028 = Date.parse('2028-10-29T01:00:00.000Z');
startSummerTime2029 = Date.parse('2029-03-25T01:00:00.000Z');
endSummerTime2029 = Date.parse('2029-10-28T01:00:00.000Z');
startSummerTime2030 = Date.parse('2030-03-31T01:00:00.000Z');
endSummerTime2030 = Date.parse('2030-10-27T01:00:00.000Z');
startSummerTime2031 = Date.parse('2031-03-30T01:00:00.000Z');
endSummerTime2031 = Date.parse('2031-10-26T01:00:00.000Z');
startSummerTime2032 = Date.parse('2032-03-28T01:00:00.000Z');
endSummerTime2032 = Date.parse('2032-10-31T01:00:00.000Z');
startSummerTime2033 = Date.parse('2033-03-27T01:00:00.000Z');
endSummerTime2033 = Date.parse('2033-10-30T01:00:00.000Z');
startSummerTime2034 = Date.parse('2034-03-26T01:00:00.000Z');
endSummerTime2034 = Date.parse('2034-10-29T01:00:00.000Z');

//Check if current date in UTC is in Summer Time DateTime Range and if so add an hour to 'ist'
if ((date > startSummerTime2023 && date < endSummerTime2023) || (date > startSummerTime2024 && date < endSummerTime2024) || (date > startSummerTime2025 && date < endSummerTime2025) || (date > startSummerTime2026 && date < endSummerTime2026) || (date > startSummerTime2027 && date < endSummerTime2027) || (date > startSummerTime2028 && date < endSummerTime2028) || (date > startSummerTime2029 && date < endSummerTime2029) || (date > startSummerTime2030 && date < endSummerTime2030) || (date > startSummerTime2031 && date < endSummerTime2031) || (date > startSummerTime2032 && date < endSummerTime2032) || (date > startSummerTime2033 && date < endSummerTime2033) || (date > startSummerTime2034 && date < endSummerTime2034)) {
    ist.setHours(date.getHours()+1);
} else if ((year >= 2023) && (year < 2035)) {
    //Do not change time - as its time equal to UTC
} else {
    3;
}

istPlus30Days.setHours(ist.getHours()+(24*30)); // Add 30 days to ist time    

if ((startTimeDate > ist) && (startTimeDate < istPlus30Days)){  
    console.log("Valid");
}else{ 
    console.log("InValid");
}
  • code/javascript/home.txt
  • Last modified: 2023/08/03 16:02
  • by gerardorourke