const getTimezoneOffset = (timeZone, date = new Date()) => { const tz = date.toLocaleString("en", {timeZone, timeStyle: "long"}).split(" ").slice(-1)[0]; const dateString = date.toString(); const offset = Date.parse(`${dateString} UTC`) - Date.parse(`${dateString} ${tz}`); // return UTC offset in millis return offset; } let profile = { "time_points": [ { "start_time": "13:00", "value": 0 }, { "start_time": "16:00", "value": 1 } ], "astro_clock": true, "dusk_astro_clock_offset": 0, "dawn_astro_clock_offset": 0, "dusk_lux_sensor": false, "dawn_lux_sensor": false, "dusk_lux_sensor_value": 5, "dawn_lux_sensor_value": 5, "dusk_lux_sensor_time_window": 30, "dawn_lux_sensor_time_window": 30, } let now = new Date(); // Creates a Date Object using the clients current time console.log(now, now.getTime()); //let [hours, minutes, seconds] = "18:19:02".split(':'); //d.setHours(+hours); // Set the hours, using implicit type coercion //d.setMinutes(minutes); // You can pass Number or String. It doesn't really matter //d.setSeconds(seconds); let time_points = profile.time_points; time_points.push( {"start_time": "1:00", "value": 1} ); time_points.sort(function (a, b) { let [ahours, aminutes, aseconds] = a.start_time.split(':'); let [bhours, bminutes, bseconds] = b.start_time.split(':'); let ad = new Date(); ad.setHours( parseInt(ahours) ); ad.setMinutes( parseInt(aminutes) ); ad.setSeconds(0); let bd = new Date(); bd.setHours( parseInt(bhours) ); bd.setMinutes( parseInt(bminutes) ); ad.setSeconds(0); return ad.getTime() - bd.getTime(); }); console.log(time_points); let value = time_points[ time_points.length - 1].value; for(let i = 0; i < time_points.length; i++) { let [hours, minutes, seconds] = time_points[i].start_time.split(':'); let start_time = new Date(); start_time.setHours( parseInt(hours) ); start_time.setMinutes( parseInt(minutes) ); start_time.setSeconds(0); if(now.getTime() > start_time.getTime()) { value = time_points[i].value; } //console.log(start_time); } console.log(value); const offset = getTimezoneOffset("Europe/Bratislava"); console.log(offset); function removeTask(obj) { let keys = Object.keys(obj); tasks = tasks.filter((task) => { let counter = 0; for(let i = 0; i < keys.length; i++) { let key = keys[i]; if(task.hasOwnProperty(key) && obj.hasOwnProperty(key)) { if(task[key] == obj[key]) counter++; } } if(counter == keys.length) return false; return true; }); } function convertUTCDateToLocalDate(date) { var newDate = new Date(date); newDate.setMinutes(date.getMinutes() - date.getTimezoneOffset()); return newDate; } let d = convertUTCDateToLocalDate(new Date("2022-04-26T06:56:54.000Z")); console.log(d, d.getHours());