120 lines
3.1 KiB
JavaScript
120 lines
3.1 KiB
JavaScript
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());
|